05:04:29.459 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=75.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:04:29.461 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.1ms idle=23.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] 05:04:29.463 [debug] QUERY OK source="media_items" db=1.1ms idle=23.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 [2258397] 05:04:29.463 [debug] Current batch of media processed. Will check again in 1000ms 05:04:30.464 [debug] Current batch of media processed. Will check again in 1000ms 05:04:31.465 [debug] Current batch of media processed. Will check again in 1000ms 05:04:32.466 [debug] Current batch of media processed. Will check again in 1000ms 05:04:33.467 [debug] Current batch of media processed. Will check again in 1000ms 05:04:34.468 [debug] Current batch of media processed. Will check again in 1000ms 05:04:35.469 [debug] Current batch of media processed. Will check again in 1000ms 05:04:36.470 [debug] Current batch of media processed. Will check again in 1000ms 05:04:37.472 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "How to install Arch Linux via the command line installation process. I will use UEFI, btrfs, zram, and install a popular Wayland compositor (niri). \n\nNOTE:\nThis video was re-uploaded in order to correct a major mistake (by omission) made in the first version of this video. I did not run the command to create the 'fstab' file. Oops! The solution is to make the /mnt/etc directory (mkdir -p /mnt/etc) and then run the 'gensftab' command (full command in the pinned comment below).\n\nREFERENCED:\n► https://wiki.archlinux.org/title/Installation_guide\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" => 1439, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e021000_An Arch Linux Installation Guide (2026).mp4", "id" => "BUYFe5ejxfo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=BUYFe5ejxfo", "playlist_index" => 7, "timestamp" => 1770741047, "title" => "An Arch Linux Installation Guide (2026)", "upload_date" => "20260210"} 05:04:37.473 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=958.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:04:37.474 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=960.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:04:37.483 [debug] QUERY OK source="media_items" db=8.6ms queue=0.1ms idle=960.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-10 16:30:47Z], 35] 05:04:37.494 [debug] QUERY OK source="media_items" db=9.4ms idle=970.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" ["How to install Arch Linux via the command line installation process. I will use UEFI, btrfs, zram, and install a popular Wayland compositor (niri). \n\nNOTE:\nThis video was re-uploaded in order to correct a major mistake (by omission) made in the first version of this video. I did not run the command to create the 'fstab' file. Oops! The solution is to make the /mnt/etc directory (mkdir -p /mnt/etc) and then run the 'gensftab' command (full command in the pinned comment below).\n\nREFERENCED:\n► https://wiki.archlinux.org/title/Installation_guide\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!", "An Arch Linux Installation Guide (2026)", "095e38b6-06e6-4118-917a-6f3eec5833bf", "BUYFe5ejxfo", 1439, false, "https://www.youtube.com/watch?v=BUYFe5ejxfo", 7, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e021000_An Arch Linux Installation Guide (2026).mp4", false, false, false, 35, [], 98, ~U[2026-02-10 16:30:47Z], ~U[2026-03-01 11:04:37Z], ~U[2026-03-01 11:04:37Z], "How to install Arch Linux via the command line installation process. I will use UEFI, btrfs, zram, and install a popular Wayland compositor (niri). \n\nNOTE:\nThis video was re-uploaded in order to correct a major mistake (by omission) made in the first version of this video. I did not run the command to create the 'fstab' file. Oops! The solution is to make the /mnt/etc directory (mkdir -p /mnt/etc) and then run the 'gensftab' command (full command in the pinned comment below).\n\nREFERENCED:\n► https://wiki.archlinux.org/title/Installation_guide\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!", "An Arch Linux Installation Guide (2026)", "BUYFe5ejxfo", 1439, false, "https://www.youtube.com/watch?v=BUYFe5ejxfo", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e021000_An Arch Linux Installation Guide (2026).mp4", false, 35, ~U[2026-02-10 16:30:47Z]] 05:04:37.495 [debug] QUERY OK source="sources" db=0.6ms queue=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" = ?) [35] 05:04:37.496 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=22.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] 05:04:37.497 [debug] QUERY OK source="media_items" db=0.7ms idle=22.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 [2235720] 05:04:37.497 [debug] Current batch of media processed. Will check again in 1000ms 05:04:38.498 [debug] Current batch of media processed. Will check again in 1000ms 05:04:39.499 [debug] Current batch of media processed. Will check again in 1000ms 05:04:39.786 [info] {"source":"oban","duration":34567,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:04:40.500 [debug] Current batch of media processed. Will check again in 1000ms 05:04:41.501 [debug] Current batch of media processed. Will check again in 1000ms 05:04:42.502 [debug] Current batch of media processed. Will check again in 1000ms 05:04:43.503 [debug] Current batch of media processed. Will check again in 1000ms 05:04:44.504 [debug] Current batch of media processed. Will check again in 1000ms 05:04:45.505 [debug] Current batch of media processed. Will check again in 1000ms 05:04:46.506 [debug] Current batch of media processed. Will check again in 1000ms 05:04:47.508 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Introducing the new Xero Arch Installer, which is a beautiful, streamlined Arch Linux installer with a easy-to-use, modern TUI interface.\n\nREFERENCED:\n► https://github.com/xerolinux/XeroInstall\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" => 908, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e020600_Transform Arch Linux Into XeroLinux.mp4", "id" => "eJag0014isw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=eJag0014isw", "playlist_index" => 8, "timestamp" => 1770386467, "title" => "Transform Arch Linux Into XeroLinux", "upload_date" => "20260206"} 05:04:47.509 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms idle=1070.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] 05:04:47.511 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms idle=996.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] 05:04:47.524 [debug] QUERY OK source="media_items" db=12.1ms queue=0.2ms idle=998.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 14:01:07Z], 35] 05:04:47.531 [debug] QUERY OK source="media_items" db=4.6ms queue=0.1ms idle=1012.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" ["Introducing the new Xero Arch Installer, which is a beautiful, streamlined Arch Linux installer with a easy-to-use, modern TUI interface.\n\nREFERENCED:\n► https://github.com/xerolinux/XeroInstall\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!", "Transform Arch Linux Into XeroLinux", "d3be24c6-9ac2-4f3c-9eae-adbeee651f89", "eJag0014isw", 908, false, "https://www.youtube.com/watch?v=eJag0014isw", 8, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e020600_Transform Arch Linux Into XeroLinux.mp4", false, false, false, 35, [], 98, ~U[2026-02-06 14:01:07Z], ~U[2026-03-01 11:04:47Z], ~U[2026-03-01 11:04:47Z], "Introducing the new Xero Arch Installer, which is a beautiful, streamlined Arch Linux installer with a easy-to-use, modern TUI interface.\n\nREFERENCED:\n► https://github.com/xerolinux/XeroInstall\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!", "Transform Arch Linux Into XeroLinux", "eJag0014isw", 908, false, "https://www.youtube.com/watch?v=eJag0014isw", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e020600_Transform Arch Linux Into XeroLinux.mp4", false, 35, ~U[2026-02-06 14:01:07Z]] 05:04:47.532 [debug] QUERY OK source="sources" db=1.0ms queue=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" = ?) [35] 05:04:47.534 [debug] QUERY OK source="media_profiles" db=1.0ms queue=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] 05:04:47.538 [debug] QUERY OK source="media_items" db=2.3ms queue=0.1ms idle=23.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 [2203303] 05:04:47.538 [debug] Current batch of media processed. Will check again in 1000ms 05:04:48.539 [debug] Current batch of media processed. Will check again in 1000ms 05:04:49.540 [debug] Current batch of media processed. Will check again in 1000ms 05:04:50.541 [debug] Current batch of media processed. Will check again in 1000ms 05:04:51.542 [debug] Current batch of media processed. Will check again in 1000ms 05:04:52.543 [debug] Current batch of media processed. Will check again in 1000ms 05:04:53.544 [debug] Current batch of media processed. Will check again in 1000ms 05:04:54.545 [debug] Current batch of media processed. Will check again in 1000ms 05:04:55.546 [debug] Current batch of media processed. Will check again in 1000ms 05:04:56.547 [debug] Current batch of media processed. Will check again in 1000ms 05:04:57.548 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "After a severe winter storm, I've spent the last 8 days without power. And that got me thinking...\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" => 1067, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e020200_Digital Detox And Being Self Sufficient.mp4", "id" => "RQppXZ6H-J0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=RQppXZ6H-J0", "playlist_index" => 9, "timestamp" => 1770040844, "title" => "Digital Detox And Being Self Sufficient", "upload_date" => "20260202"} 05:04:57.549 [debug] QUERY OK source="sources" db=0.5ms queue=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" IN (?)) [35] 05:04:57.550 [debug] QUERY OK source="sources" db=0.3ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 05:04:57.559 [debug] QUERY OK source="media_items" db=7.8ms queue=0.1ms idle=37.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-02 14:00:44Z], 35] 05:04:57.563 [debug] QUERY OK source="media_items" db=2.7ms idle=46.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" ["After a severe winter storm, I've spent the last 8 days without power. And that got me thinking...\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!", "Digital Detox And Being Self Sufficient", "e1f5c48f-4499-4268-ab54-0c11b8b94565", "RQppXZ6H-J0", 1067, false, "https://www.youtube.com/watch?v=RQppXZ6H-J0", 9, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e020200_Digital Detox And Being Self Sufficient.mp4", false, false, false, 35, [], 98, ~U[2026-02-02 14:00:44Z], ~U[2026-03-01 11:04:57Z], ~U[2026-03-01 11:04:57Z], "After a severe winter storm, I've spent the last 8 days without power. And that got me thinking...\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!", "Digital Detox And Being Self Sufficient", "RQppXZ6H-J0", 1067, false, "https://www.youtube.com/watch?v=RQppXZ6H-J0", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e020200_Digital Detox And Being Self Sufficient.mp4", false, 35, ~U[2026-02-02 14:00:44Z]] 05:04:57.564 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=49.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 05:04:57.565 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms 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] 05:04:57.566 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=15.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 [2171883] 05:04:57.566 [debug] Current batch of media processed. Will check again in 1000ms 05:04:58.567 [debug] Current batch of media processed. Will check again in 1000ms 05:04:59.568 [debug] Current batch of media processed. Will check again in 1000ms 05:05:00.068 [info] {"source":"oban","duration":868,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:05:00.569 [debug] Current batch of media processed. Will check again in 1000ms 05:05:01.570 [debug] Current batch of media processed. Will check again in 1000ms 05:05:02.571 [debug] Current batch of media processed. Will check again in 1000ms 05:05:03.572 [debug] Current batch of media processed. Will check again in 1000ms 05:05:04.573 [debug] Current batch of media processed. Will check again in 1000ms 05:05:05.574 [debug] Current batch of media processed. Will check again in 1000ms 05:05:06.576 [debug] Current batch of media processed. Will check again in 1000ms 05:05:07.577 [debug] Current batch of media processed. Will check again in 1000ms 05:05:08.578 [debug] Current batch of media processed. Will check again in 1000ms 05:05:09.579 [debug] Current batch of media processed. Will check again in 1000ms 05:05:09.826 [info] {"source":"oban","duration":40280,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:05:10.581 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A quick update after the ice storm that has left me without power for several days.\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" => 216, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e013000_Not Bald Boomer Rants About Bad Weather.mp4", "id" => "iN-J51qDzpk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=iN-J51qDzpk", "playlist_index" => 10, "timestamp" => 1769781673, "title" => "Not Bald Boomer Rants About Bad Weather", "upload_date" => "20260130"} 05:05:10.582 [debug] QUERY OK source="sources" db=0.6ms queue=0.2ms idle=1066.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:05:10.583 [debug] QUERY OK source="sources" db=0.3ms queue=0.2ms idle=1068.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:05:10.593 [debug] QUERY OK source="media_items" db=9.0ms queue=0.1ms idle=1063.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-30 14:01:13Z], 35] 05:05:10.598 [debug] QUERY OK source="media_items" db=3.5ms idle=767.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 quick update after the ice storm that has left me without power for several days.\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!", "Not Bald Boomer Rants About Bad Weather", "dc13176a-22d6-4c68-b4f3-933cb8c4de92", "iN-J51qDzpk", 216, false, "https://www.youtube.com/watch?v=iN-J51qDzpk", 10, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e013000_Not Bald Boomer Rants About Bad Weather.mp4", false, false, false, 35, [], 98, ~U[2026-01-30 14:01:13Z], ~U[2026-03-01 11:05:10Z], ~U[2026-03-01 11:05:10Z], "A quick update after the ice storm that has left me without power for several days.\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!", "Not Bald Boomer Rants About Bad Weather", "iN-J51qDzpk", 216, false, "https://www.youtube.com/watch?v=iN-J51qDzpk", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e013000_Not Bald Boomer Rants About Bad Weather.mp4", false, 35, ~U[2026-01-30 14:01:13Z]] 05:05:10.599 [debug] QUERY OK source="sources" db=0.7ms queue=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" = ?) [35] 05:05:10.600 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=17.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] 05:05:10.602 [debug] QUERY OK source="media_items" db=0.8ms idle=17.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [2147889] 05:05:10.602 [debug] Current batch of media processed. Will check again in 1000ms 05:05:11.603 [debug] Current batch of media processed. Will check again in 1000ms 05:05:12.604 [debug] Current batch of media processed. Will check again in 1000ms 05:05:13.605 [debug] Current batch of media processed. Will check again in 1000ms 05:05:14.607 [debug] Current batch of media processed. Will check again in 1000ms 05:05:15.608 [debug] Current batch of media processed. Will check again in 1000ms 05:05:16.609 [debug] Current batch of media processed. Will check again in 1000ms 05:05:17.610 [debug] Current batch of media processed. Will check again in 1000ms 05:05:18.611 [debug] Current batch of media processed. Will check again in 1000ms 05:05:19.613 [debug] Current batch of media processed. Will check again in 1000ms 05:05:20.615 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Xonsh (sounds like \"consh\") is a modern, full-featured and cross-platform python shell. I recently switched to using Xonsh as my default user shell, but I ran into a big problem with it, mainly because I installed it the wrong way!\n\nREFERENCED:\n► https://xon.sh/\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" => 364, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e012600_My Xonsh Shell Experiment Failed! (...Kind Of).mp4", "id" => "Iif4GpL6yrQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Iif4GpL6yrQ", "playlist_index" => 11, "timestamp" => 1769436025, "title" => "My Xonsh Shell Experiment Failed! (...Kind Of)", "upload_date" => "20260126"} 05:05:20.618 [debug] QUERY OK source="sources" db=1.2ms queue=0.3ms idle=101.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] 05:05:20.621 [debug] QUERY OK source="sources" db=1.2ms queue=0.2ms idle=104.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:05:20.648 [debug] QUERY OK source="media_items" db=24.6ms queue=0.1ms idle=107.6ms 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 14:00:25Z], 35] 05:05:20.664 [debug] QUERY OK source="media_items" db=11.2ms queue=0.4ms idle=135.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" ["Xonsh (sounds like \"consh\") is a modern, full-featured and cross-platform python shell. I recently switched to using Xonsh as my default user shell, but I ran into a big problem with it, mainly because I installed it the wrong way!\n\nREFERENCED:\n► https://xon.sh/\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!", "My Xonsh Shell Experiment Failed! (...Kind Of)", "1e44bd1c-1365-4b69-a3ac-6749d11aeff2", "Iif4GpL6yrQ", 364, false, "https://www.youtube.com/watch?v=Iif4GpL6yrQ", 11, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e012600_My Xonsh Shell Experiment Failed! (...Kind Of).mp4", false, false, false, 35, [], 98, ~U[2026-01-26 14:00:25Z], ~U[2026-03-01 11:05:20Z], ~U[2026-03-01 11:05:20Z], "Xonsh (sounds like \"consh\") is a modern, full-featured and cross-platform python shell. I recently switched to using Xonsh as my default user shell, but I ran into a big problem with it, mainly because I installed it the wrong way!\n\nREFERENCED:\n► https://xon.sh/\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!", "My Xonsh Shell Experiment Failed! (...Kind Of)", "Iif4GpL6yrQ", 364, false, "https://www.youtube.com/watch?v=Iif4GpL6yrQ", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e012600_My Xonsh Shell Experiment Failed! (...Kind Of).mp4", false, 35, ~U[2026-01-26 14:00:25Z]] 05:05:20.667 [debug] QUERY OK source="sources" db=1.5ms decode=0.1ms queue=0.2ms idle=105.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:05:20.671 [debug] QUERY OK source="media_profiles" db=2.2ms queue=0.4ms idle=49.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] 05:05:20.678 [debug] QUERY OK source="media_items" db=4.9ms queue=0.2ms idle=51.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 [2115966] 05:05:20.679 [debug] Current batch of media processed. Will check again in 1000ms 05:05:21.679 [debug] Current batch of media processed. Will check again in 1000ms 05:05:22.680 [debug] Current batch of media processed. Will check again in 1000ms 05:05:23.681 [debug] Current batch of media processed. Will check again in 1000ms 05:05:24.682 [debug] Current batch of media processed. Will check again in 1000ms 05:05:25.684 [debug] Current batch of media processed. Will check again in 1000ms 05:05:26.685 [debug] Current batch of media processed. Will check again in 1000ms 05:05:27.686 [debug] Current batch of media processed. Will check again in 1000ms 05:05:28.688 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "DankMaterialShell is a complete desktop shell for niri, Hyprland, MangoWC, Sway, labwc, Scroll, and other Wayland compositors. It replaces waybar, swaylock, swayidle, mako, fuzzel, polkit, and everything else you'd normally stitch together to make a desktop.\n\nREFERENCED:\n► https://github.com/AvengeMedia/DankMaterialShell\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" => 876, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e012300_The Dank Material Shell - A Wayland Desktop Suite.mp4", "id" => "1ILZevPGgJw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=1ILZevPGgJw", "playlist_index" => 12, "timestamp" => 1769176802, "title" => "The Dank Material Shell - A Wayland Desktop Suite", "upload_date" => "20260123"} 05:05:28.689 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=174.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:05:28.690 [debug] QUERY OK source="sources" db=0.5ms idle=175.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] 05:05:28.700 [debug] QUERY OK source="media_items" db=9.0ms 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-01-23 14:00:02Z], 35] 05:05:28.706 [debug] QUERY OK source="media_items" db=4.0ms idle=186.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" ["DankMaterialShell is a complete desktop shell for niri, Hyprland, MangoWC, Sway, labwc, Scroll, and other Wayland compositors. It replaces waybar, swaylock, swayidle, mako, fuzzel, polkit, and everything else you'd normally stitch together to make a desktop.\n\nREFERENCED:\n► https://github.com/AvengeMedia/DankMaterialShell\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!", "The Dank Material Shell - A Wayland Desktop Suite", "73e53ae8-ff34-4fb0-af6a-66ae526ae844", "1ILZevPGgJw", 876, false, "https://www.youtube.com/watch?v=1ILZevPGgJw", 12, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e012300_The Dank Material Shell - A Wayland Desktop Suite.mp4", false, false, false, 35, [], 98, ~U[2026-01-23 14:00:02Z], ~U[2026-03-01 11:05:28Z], ~U[2026-03-01 11:05:28Z], "DankMaterialShell is a complete desktop shell for niri, Hyprland, MangoWC, Sway, labwc, Scroll, and other Wayland compositors. It replaces waybar, swaylock, swayidle, mako, fuzzel, polkit, and everything else you'd normally stitch together to make a desktop.\n\nREFERENCED:\n► https://github.com/AvengeMedia/DankMaterialShell\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!", "The Dank Material Shell - A Wayland Desktop Suite", "1ILZevPGgJw", 876, false, "https://www.youtube.com/watch?v=1ILZevPGgJw", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e012300_The Dank Material Shell - A Wayland Desktop Suite.mp4", false, 35, ~U[2026-01-23 14:00:02Z]] 05:05:28.707 [debug] QUERY OK source="sources" db=0.8ms idle=118.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] 05:05:28.709 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms idle=17.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] 05:05:28.710 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=18.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 [2091557] 05:05:28.710 [debug] Current batch of media processed. Will check again in 1000ms 05:05:29.711 [debug] Current batch of media processed. Will check again in 1000ms 05:05:30.712 [debug] Current batch of media processed. Will check again in 1000ms 05:05:31.713 [debug] Current batch of media processed. Will check again in 1000ms 05:05:32.714 [debug] Current batch of media processed. Will check again in 1000ms 05:05:33.715 [debug] Current batch of media processed. Will check again in 1000ms 05:05:34.716 [debug] Current batch of media processed. Will check again in 1000ms 05:05:35.717 [debug] Current batch of media processed. Will check again in 1000ms 05:05:36.718 [debug] Current batch of media processed. Will check again in 1000ms 05:05:37.719 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I switched to the Kensington Expert trackball about 5 years ago. I even did a video about it (https://www.youtube.com/watch?v=VaG4sCXTkrw). But recently I have been having a bit of hand pain, and I suspected that the mouse was the problem. So...I decided to try a different Kensington trackball--the Orbit! \n\nREFERENCED:\n► https://amzn.to/45eSLvF - Kensington Orbit Trackball Mouse\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" => 701, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011900_The Kensington Orbit Trackball Mouse (Will It Solve My Hand Pain?).mp4", "id" => "BZqHn8w0MGg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=BZqHn8w0MGg", "playlist_index" => 13, "timestamp" => 1768831218, "title" => "The Kensington Orbit Trackball Mouse (Will It Solve My Hand Pain?)", "upload_date" => "20260119"} 05:05:37.720 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1205.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:05:37.721 [debug] QUERY OK source="sources" db=0.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 05:05:37.729 [debug] QUERY OK source="media_items" db=7.1ms idle=1207.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-19 14:00:18Z], 35] 05:05:37.732 [debug] QUERY OK source="media_items" db=2.7ms idle=1117.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 switched to the Kensington Expert trackball about 5 years ago. I even did a video about it (https://www.youtube.com/watch?v=VaG4sCXTkrw). But recently I have been having a bit of hand pain, and I suspected that the mouse was the problem. So...I decided to try a different Kensington trackball--the Orbit! \n\nREFERENCED:\n► https://amzn.to/45eSLvF - Kensington Orbit Trackball Mouse\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!", "The Kensington Orbit Trackball Mouse (Will It Solve My Hand Pain?)", "4135b5d7-82b0-482b-bef9-eb0294bba1d7", "BZqHn8w0MGg", 701, false, "https://www.youtube.com/watch?v=BZqHn8w0MGg", 13, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011900_The Kensington Orbit Trackball Mouse (Will It Solve My Hand Pain?).mp4", false, false, false, 35, [], 98, ~U[2026-01-19 14:00:18Z], ~U[2026-03-01 11:05:37Z], ~U[2026-03-01 11:05:37Z], "I switched to the Kensington Expert trackball about 5 years ago. I even did a video about it (https://www.youtube.com/watch?v=VaG4sCXTkrw). But recently I have been having a bit of hand pain, and I suspected that the mouse was the problem. So...I decided to try a different Kensington trackball--the Orbit! \n\nREFERENCED:\n► https://amzn.to/45eSLvF - Kensington Orbit Trackball Mouse\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!", "The Kensington Orbit Trackball Mouse (Will It Solve My Hand Pain?)", "BZqHn8w0MGg", 701, false, "https://www.youtube.com/watch?v=BZqHn8w0MGg", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011900_The Kensington Orbit Trackball Mouse (Will It Solve My Hand Pain?).mp4", false, 35, ~U[2026-01-19 14:00:18Z]] 05:05:37.734 [debug] QUERY OK source="sources" db=0.6ms idle=119.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:05:37.734 [debug] QUERY OK source="media_profiles" db=0.5ms queue=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] 05:05:37.735 [debug] QUERY OK source="media_items" db=0.5ms idle=13.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 [2059366] 05:05:37.736 [debug] Current batch of media processed. Will check again in 1000ms 05:05:38.736 [debug] Current batch of media processed. Will check again in 1000ms 05:05:39.737 [debug] Current batch of media processed. Will check again in 1000ms 05:05:39.852 [info] {"source":"oban","duration":24547,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:05:40.738 [debug] Current batch of media processed. Will check again in 1000ms 05:05:41.739 [debug] Current batch of media processed. Will check again in 1000ms 05:05:42.740 [debug] Current batch of media processed. Will check again in 1000ms 05:05:43.741 [debug] Current batch of media processed. Will check again in 1000ms 05:05:44.743 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I'm taking a quick first look at Niri, which is a scrollable-tiling Wayland compositor.\n\nREFERENCED:\n► https://github.com/YaLTeR/niri/\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" => 1003, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011600_A Quick First Look At The Niri Window Manager.mp4", "id" => "uiXiD5foFCI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=uiXiD5foFCI", "playlist_index" => 14, "timestamp" => 1768572101, "title" => "A Quick First Look At The Niri Window Manager", "upload_date" => "20260116"} 05:05:44.744 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=1228.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:05:44.745 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1230.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:05:44.759 [debug] QUERY OK source="media_items" db=13.5ms queue=0.1ms idle=1231.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-16 14:01:41Z], 35] 05:05:44.765 [debug] QUERY OK source="media_items" db=4.0ms queue=0.1ms idle=1132.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 taking a quick first look at Niri, which is a scrollable-tiling Wayland compositor.\n\nREFERENCED:\n► https://github.com/YaLTeR/niri/\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 First Look At The Niri Window Manager", "8f2e16df-b9d5-42a5-a35d-1308abae92d1", "uiXiD5foFCI", 1003, false, "https://www.youtube.com/watch?v=uiXiD5foFCI", 14, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011600_A Quick First Look At The Niri Window Manager.mp4", false, false, false, 35, [], 98, ~U[2026-01-16 14:01:41Z], ~U[2026-03-01 11:05:44Z], ~U[2026-03-01 11:05:44Z], "I'm taking a quick first look at Niri, which is a scrollable-tiling Wayland compositor.\n\nREFERENCED:\n► https://github.com/YaLTeR/niri/\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 First Look At The Niri Window Manager", "uiXiD5foFCI", 1003, false, "https://www.youtube.com/watch?v=uiXiD5foFCI", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011600_A Quick First Look At The Niri Window Manager.mp4", false, 35, ~U[2026-01-16 14:01:41Z]] 05:05:44.767 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms 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" = ?) [35] 05:05:44.768 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=23.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] 05:05:44.770 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=23.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 [2035356] 05:05:44.770 [debug] Current batch of media processed. Will check again in 1000ms 05:05:45.771 [debug] Current batch of media processed. Will check again in 1000ms 05:05:46.772 [debug] Current batch of media processed. Will check again in 1000ms 05:05:47.773 [debug] Current batch of media processed. Will check again in 1000ms 05:05:48.774 [debug] Current batch of media processed. Will check again in 1000ms 05:05:49.775 [debug] Current batch of media processed. Will check again in 1000ms 05:05:50.776 [debug] Current batch of media processed. Will check again in 1000ms 05:05:51.777 [debug] Current batch of media processed. Will check again in 1000ms 05:05:52.778 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "There is a new \"software movement\" that seems to be gaining ground. It's the \"fair source\" movement, and it's quite discriminatory in nature. Sadly, I see some within the FOSS community actually advocating for \"fair source.\"\n\nREFERENCED:\n► https://fair.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" => 929, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011200_Fair Source Software Is Incredibly Unfair.mp4", "id" => "V_L0MNy8Mpg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=V_L0MNy8Mpg", "playlist_index" => 15, "timestamp" => 1768226462, "title" => "Fair Source Software Is Incredibly Unfair", "upload_date" => "20260112"} 05:05:52.779 [debug] QUERY OK source="sources" db=0.4ms idle=264.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:05:52.781 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=265.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:05:52.790 [debug] QUERY OK source="media_items" db=8.7ms idle=266.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 14:01:02Z], 35] 05:05:52.794 [debug] QUERY OK source="media_items" db=3.3ms idle=276.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 is a new \"software movement\" that seems to be gaining ground. It's the \"fair source\" movement, and it's quite discriminatory in nature. Sadly, I see some within the FOSS community actually advocating for \"fair source.\"\n\nREFERENCED:\n► https://fair.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!", "Fair Source Software Is Incredibly Unfair", "6ae2ca31-63f2-4e2a-8f83-d18769454b75", "V_L0MNy8Mpg", 929, false, "https://www.youtube.com/watch?v=V_L0MNy8Mpg", 15, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011200_Fair Source Software Is Incredibly Unfair.mp4", false, false, false, 35, [], 98, ~U[2026-01-12 14:01:02Z], ~U[2026-03-01 11:05:52Z], ~U[2026-03-01 11:05:52Z], "There is a new \"software movement\" that seems to be gaining ground. It's the \"fair source\" movement, and it's quite discriminatory in nature. Sadly, I see some within the FOSS community actually advocating for \"fair source.\"\n\nREFERENCED:\n► https://fair.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!", "Fair Source Software Is Incredibly Unfair", "V_L0MNy8Mpg", 929, false, "https://www.youtube.com/watch?v=V_L0MNy8Mpg", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011200_Fair Source Software Is Incredibly Unfair.mp4", false, 35, ~U[2026-01-12 14:01:02Z]] 05:05:52.795 [debug] QUERY OK source="sources" db=0.6ms idle=139.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:05:52.796 [debug] QUERY OK source="media_profiles" db=0.6ms queue=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] 05:05:52.798 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=16.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 [2002899] 05:05:52.798 [debug] Current batch of media processed. Will check again in 1000ms 05:05:53.799 [debug] Current batch of media processed. Will check again in 1000ms 05:05:54.800 [debug] Current batch of media processed. Will check again in 1000ms 05:05:55.801 [debug] Current batch of media processed. Will check again in 1000ms 05:05:56.802 [debug] Current batch of media processed. Will check again in 1000ms 05:05:57.803 [debug] Current batch of media processed. Will check again in 1000ms 05:05:58.804 [debug] Current batch of media processed. Will check again in 1000ms 05:05:59.683 [info] {"args":{"id":1977213},"id":188633,"meta":{},"system_time":1772363159683549674,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":15,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:05:59.684 [debug] QUERY OK source="media_items" db=0.6ms idle=1169.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" = ?) [1977213] 05:05:59.685 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:05:59.686 [debug] QUERY OK source="sources" db=0.5ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 05:05:59.687 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=1013.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] 05:05:59.688 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=11.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 [1977213] 05:05:59.691 [debug] QUERY OK source="media_metadata" db=0.2ms idle=7.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" = ?) [1977213] 05:05:59.691 [debug] QUERY OK source="media_profiles" db=0.3ms queue=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] 05:05:59.693 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:05:59.693 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms 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 [] 05:05:59.694 [debug] Running yt-dlp command for action: get_downloadable_status 05:05:59.696 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:05:59.697 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms 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 [] 05:05:59.697 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:05:59.698 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Xyjgyicc27s --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/6d/62/6d62acb59079d222de54d354891fe4b1f2e313c6b13b9fc77316c50daccade75.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:05:59.805 [debug] Current batch of media processed. Will check again in 1000ms 05:06:00.070 [info] {"source":"oban","duration":504,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:06:00.807 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I've been using Qtile on-and-off again for probably a decade or longer. Qtile is a full-featured, hackable tiling window manager written and configured in Python. It was originally written for X11 but it does have a Wayland session. Let's try it out!\n\nREFERENCED:\n► https://qtile.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" => 1048, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010800_Qtile On Wayland...It Kinda Works!.mp4", "id" => "8YdBCIqhzs8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=8YdBCIqhzs8", "playlist_index" => 16, "timestamp" => 1767880813, "title" => "Qtile On Wayland...It Kinda Works!", "upload_date" => "20260108"} 05:06:00.808 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=1111.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] 05:06:00.810 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 05:06:00.824 [debug] QUERY OK source="media_items" db=13.6ms queue=0.1ms idle=1112.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-08 14:00:13Z], 35] 05:06:00.833 [debug] QUERY OK source="media_items" db=6.3ms queue=0.1ms idle=755.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've been using Qtile on-and-off again for probably a decade or longer. Qtile is a full-featured, hackable tiling window manager written and configured in Python. It was originally written for X11 but it does have a Wayland session. Let's try it out!\n\nREFERENCED:\n► https://qtile.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!", "Qtile On Wayland...It Kinda Works!", "2dff791a-a739-4c97-a233-c6c261476d00", "8YdBCIqhzs8", 1048, false, "https://www.youtube.com/watch?v=8YdBCIqhzs8", 16, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010800_Qtile On Wayland...It Kinda Works!.mp4", false, false, false, 35, [], 98, ~U[2026-01-08 14:00:13Z], ~U[2026-03-01 11:06:00Z], ~U[2026-03-01 11:06:00Z], "I've been using Qtile on-and-off again for probably a decade or longer. Qtile is a full-featured, hackable tiling window manager written and configured in Python. It was originally written for X11 but it does have a Wayland session. Let's try it out!\n\nREFERENCED:\n► https://qtile.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!", "Qtile On Wayland...It Kinda Works!", "8YdBCIqhzs8", 1048, false, "https://www.youtube.com/watch?v=8YdBCIqhzs8", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010800_Qtile On Wayland...It Kinda Works!.mp4", false, 35, ~U[2026-01-08 14:00:13Z]] 05:06:00.834 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=153.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:06:00.836 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.1ms idle=26.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] 05:06:00.839 [debug] QUERY OK source="media_items" db=1.1ms queue=0.2ms idle=27.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 [1970924] 05:06:00.839 [debug] Current batch of media processed. Will check again in 1000ms 05:06:01.840 [debug] Current batch of media processed. Will check again in 1000ms 05:06:02.841 [debug] Current batch of media processed. Will check again in 1000ms 05:06:03.842 [debug] Current batch of media processed. Will check again in 1000ms 05:06:04.843 [debug] Current batch of media processed. Will check again in 1000ms 05:06:05.452 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Xyjgyicc27s --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/6d/62/6d62acb59079d222de54d354891fe4b1f2e313c6b13b9fc77316c50daccade75.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] Xyjgyicc27s: Join this channel to get access to members-only content like this video, and other exclusive perks. 05:06:05.452 [error] yt-dlp download error for media item #1977213: "ERROR: [youtube] Xyjgyicc27s: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 05:06:05.455 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1977213},"id":188633,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5769787,"event":"job:exception","queue_time":196465,"attempt":15,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:06:05.844 [debug] Current batch of media processed. Will check again in 1000ms 05:06:06.846 [debug] Current batch of media processed. Will check again in 1000ms 05:06:07.847 [debug] Current batch of media processed. Will check again in 1000ms 05:06:08.848 [debug] Current batch of media processed. Will check again in 1000ms 05:06:09.849 [debug] Current batch of media processed. Will check again in 1000ms 05:06:09.882 [info] {"source":"oban","duration":29734,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 05:06:10.851 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "We have entered a new age of programming. It is the age of \"vibe coding,\" which is using A.I. tools like ChatGPT or Gemini to write your programs.\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" => 870, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010400_Vibe Coding Is The Evolution Of Programming.mp4", "id" => "2wfs0A94_T4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=2wfs0A94_T4", "playlist_index" => 17, "timestamp" => 1767535207, "title" => "Vibe Coding Is The Evolution Of Programming", "upload_date" => "20260104"} 05:06:10.852 [debug] QUERY OK source="sources" db=0.5ms idle=969.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:06:10.853 [debug] QUERY OK source="sources" db=0.6ms idle=337.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] 05:06:10.862 [debug] QUERY OK source="media_items" db=8.5ms idle=339.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-04 14:00:07Z], 35] 05:06:10.867 [debug] QUERY OK source="media_items" db=3.4ms idle=348.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" ["We have entered a new age of programming. It is the age of \"vibe coding,\" which is using A.I. tools like ChatGPT or Gemini to write your programs.\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!", "Vibe Coding Is The Evolution Of Programming", "c1d7f37b-6dc4-43c6-ad9b-8857faef8c21", "2wfs0A94_T4", 870, false, "https://www.youtube.com/watch?v=2wfs0A94_T4", 17, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010400_Vibe Coding Is The Evolution Of Programming.mp4", false, false, false, 35, [], 98, ~U[2026-01-04 14:00:07Z], ~U[2026-03-01 11:06:10Z], ~U[2026-03-01 11:06:10Z], "We have entered a new age of programming. It is the age of \"vibe coding,\" which is using A.I. tools like ChatGPT or Gemini to write your programs.\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!", "Vibe Coding Is The Evolution Of Programming", "2wfs0A94_T4", 870, false, "https://www.youtube.com/watch?v=2wfs0A94_T4", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010400_Vibe Coding Is The Evolution Of Programming.mp4", false, 35, ~U[2026-01-04 14:00:07Z]] 05:06:10.868 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=149.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:06:10.870 [debug] QUERY OK source="media_profiles" db=1.6ms queue=0.1ms idle=16.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] 05:06:10.872 [debug] QUERY OK source="media_items" db=0.8ms idle=17.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 [1938941] 05:06:10.872 [debug] Current batch of media processed. Will check again in 1000ms 05:06:11.873 [debug] Current batch of media processed. Will check again in 1000ms 05:06:12.874 [debug] Current batch of media processed. Will check again in 1000ms 05:06:13.875 [debug] Current batch of media processed. Will check again in 1000ms 05:06:14.876 [debug] Current batch of media processed. Will check again in 1000ms 05:06:15.877 [debug] Current batch of media processed. Will check again in 1000ms 05:06:16.878 [debug] Current batch of media processed. Will check again in 1000ms 05:06:17.879 [debug] Current batch of media processed. Will check again in 1000ms 05:06:18.881 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The 'awk command' is really an entire programming language used for working with files and text.\n\n- Print a file (similar to 'cat'):\n awk '{print}' path/to/file\n OR\n awk '{print $0}' path/to/file\n\n- Print the 2nd field of each line:\n awk '{print $2}' path/to/file\n\n- Print the last field of each line:\n awk '{print $NF}' path/to/file\n\n- Search for lines containing 'string' and print the second field of those lines:\n awk '/string/ {print $2}' path/to/file\n\n- Use a different field separator (instead of space) and print 1st and 7th fields with a TAB in between:\n awk -F \":\" '{print $1 \"\\t\" $7}' /etc/passwd\n\n- Find a specific string in any column:\n ps -ef | awk '{ if($NF == \"/usr/bin/pipewire\") print $0};'\n NOTE We search if the last field is '/usr/bin/pipewire' and print the line.\n\n- Search 1st field if it starts with 'b' or 'c', then prints the line:\n awk '$1 ~ /^[b,c]/ {print $0}' .bashrc\n NOTE The '~' character is the regex match operator.\n\n- Use the 'substr' function to print each record from the 2nd character onward:\n awk '{print substr($0, 2)}' .bashrc\n NOTE It essentially prints the document but omits the first character of each line.\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" => 491, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010100_'awk' - a programming language for working on files - Video Man Pages.mp4", "id" => "cK1JMK7Ckq0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=cK1JMK7Ckq0", "playlist_index" => 18, "timestamp" => 1767276064, "title" => "'awk' - a programming language for working on files - Video Man Pages", "upload_date" => "20260101"} 05:06:18.881 [debug] QUERY OK source="sources" db=0.5ms idle=366.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:06:18.883 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=367.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:06:18.892 [debug] QUERY OK source="media_items" db=8.3ms queue=0.1ms idle=368.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-01 14:01:04Z], 35] 05:06:18.897 [debug] QUERY OK source="media_items" db=3.7ms queue=0.1ms idle=378.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 'awk command' is really an entire programming language used for working with files and text.\n\n- Print a file (similar to 'cat'):\n awk '{print}' path/to/file\n OR\n awk '{print $0}' path/to/file\n\n- Print the 2nd field of each line:\n awk '{print $2}' path/to/file\n\n- Print the last field of each line:\n awk '{print $NF}' path/to/file\n\n- Search for lines containing 'string' and print the second field of those lines:\n awk '/string/ {print $2}' path/to/file\n\n- Use a different field separator (instead of space) and print 1st and 7th fields with a TAB in between:\n awk -F \":\" '{print $1 \"\\t\" $7}' /etc/passwd\n\n- Find a specific string in any column:\n ps -ef | awk '{ if($NF == \"/usr/bin/pipewire\") print $0};'\n NOTE We search if the last field is '/usr/bin/pipewire' and print the line.\n\n- Search 1st field if it starts with 'b' or 'c', then prints the line:\n awk '$1 ~ /^[b,c]/ {print $0}' .bashrc\n NOTE The '~' character is the regex match operator.\n\n- Use the 'substr' function to print each record from the 2nd character onward:\n awk '{print substr($0, 2)}' .bashrc\n NOTE It essentially prints the document but omits the first character of each line.\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!", "'awk' - a programming language for working on files - Video Man Pages", "9c93a068-b943-4c5c-841a-b5c7d692527e", "cK1JMK7Ckq0", 491, false, "https://www.youtube.com/watch?v=cK1JMK7Ckq0", 18, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010100_'awk' - a programming language for working on files - Video Man Pages.mp4", false, false, false, 35, [], 98, ~U[2026-01-01 14:01:04Z], ~U[2026-03-01 11:06:18Z], ~U[2026-03-01 11:06:18Z], "The 'awk command' is really an entire programming language used for working with files and text.\n\n- Print a file (similar to 'cat'):\n awk '{print}' path/to/file\n OR\n awk '{print $0}' path/to/file\n\n- Print the 2nd field of each line:\n awk '{print $2}' path/to/file\n\n- Print the last field of each line:\n awk '{print $NF}' path/to/file\n\n- Search for lines containing 'string' and print the second field of those lines:\n awk '/string/ {print $2}' path/to/file\n\n- Use a different field separator (instead of space) and print 1st and 7th fields with a TAB in between:\n awk -F \":\" '{print $1 \"\\t\" $7}' /etc/passwd\n\n- Find a specific string in any column:\n ps -ef | awk '{ if($NF == \"/usr/bin/pipewire\") print $0};'\n NOTE We search if the last field is '/usr/bin/pipewire' and print the line.\n\n- Search 1st field if it starts with 'b' or 'c', then prints the line:\n awk '$1 ~ /^[b,c]/ {print $0}' .bashrc\n NOTE The '~' character is the regex match operator.\n\n- Use the 'substr' function to print each record from the 2nd character onward:\n awk '{print substr($0, 2)}' .bashrc\n NOTE It essentially prints the document but omits the first character of each line.\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!", "'awk' - a programming language for working on files - Video Man Pages", "cK1JMK7Ckq0", 491, false, "https://www.youtube.com/watch?v=cK1JMK7Ckq0", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010100_'awk' - a programming language for working on files - Video Man Pages.mp4", false, 35, ~U[2026-01-01 14:01:04Z]] 05:06:18.898 [debug] QUERY OK source="sources" db=0.7ms queue=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" = ?) [35] 05:06:18.899 [debug] QUERY OK source="media_profiles" db=0.4ms idle=16.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] 05:06:18.900 [debug] QUERY OK source="media_items" db=0.7ms idle=16.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 [1914888] 05:06:18.900 [debug] Current batch of media processed. Will check again in 1000ms 05:06:19.901 [debug] Current batch of media processed. Will check again in 1000ms 05:06:20.902 [debug] Current batch of media processed. Will check again in 1000ms 05:06:21.903 [debug] Current batch of media processed. Will check again in 1000ms 05:06:22.904 [debug] Current batch of media processed. Will check again in 1000ms 05:06:23.905 [debug] Current batch of media processed. Will check again in 1000ms 05:06:24.907 [debug] Current batch of media processed. Will check again in 1000ms 05:06:25.908 [debug] Current batch of media processed. Will check again in 1000ms 05:06:26.909 [debug] Current batch of media processed. Will check again in 1000ms 05:06:27.599 [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/b6/27/b627acce5aefabf1d48990b6246035e040b77d288bb13b8d81c491aec4a701f3.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/71/7b/717b3cc669f8ba456169a43f99e2fdda6dfdfc92593a3b2a6fe9a97bc7cb5131.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 05:06:27.601 [debug] Gracefully stopping file follower 05:06:27.602 [debug] QUERY OK source="sources" db=0.5ms idle=1086.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:06:27.603 [debug] QUERY OK source="sources" db=0.2ms idle=1087.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] 05:06:27.611 [debug] QUERY OK source="media_items" db=8.1ms idle=1088.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 14:01:30Z], 35] 05:06:27.617 [debug] QUERY OK source="media_items" db=4.5ms 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" ["'xargs' takes the output of one command (or contents of a file), converts it into a list of arguments, and passes that list to another command to execute. \n\n- Run a command using the input data as arguments:\n command1 | xargs command2\n \n- Count lines in multiple files:\n ls *.txt | xargs wc -l\n\n- Cat a file and use the input data as an argument:\n cat file | xargs\n NOTE If no xargs command is given, xargs uses 'echo' as the command.\n\n- The same as above except it executes the command once per argument (-n 1):\n cat file | xargs -n 1\n\n- Create 10 sequential .txt files. The '-I {}' symbolizes all the input:\n seq 10 | xargs -I {} touch {}.txt\n\n- Delete files with '.log' extension found by 'find'. The -print0 in 'find' and -0 in 'xargs' use a null character as a delimiter, ensuring filenames with spaces or special characters are handled correctly.\n find . -name \"*.log\" -print0 | xargs -0 rm -f\n \n- Find and delete all backup files (.bak). The '-p' option is useful for destructive operations, as it displays the command to be executed and asks for user confirmation (y/n).\n find . -type f -name \"*.bak\" | xargs -p rm\n\n- The '-d' option sets the delimiter (spaces by default):\n ls | xargs -n 1 (Files/directories with spaces are a problem.)\n ls | xargs -n 1 -d \\n (Uses new line as delimiter and problem solved!)\n \n- xargs can print (-a) the contents of a file to stdout. We can use '-p' to prompt for 'y/n' before executing. We can use '-r' to only execute if stdin is not empty.\n xargs -a 1.txt\n xargs -p -a 1.txt\n xargs -r -p -a 1.txt\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!", "'xargs' - execute command lines from standard input - Video Man Pages", "a16549e9-7fe8-4d12-8248-a1fc85b69559", "tUkQcvytVtw", 589, false, "https://www.youtube.com/watch?v=tUkQcvytVtw", 1, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022800_'xargs' - execute command lines from standard input - Video Man Pages.mp4", false, false, false, 35, [], 98, ~U[2026-02-28 14:01:30Z], ~U[2026-03-01 11:06:27Z], ~U[2026-03-01 11:06:27Z], "'xargs' takes the output of one command (or contents of a file), converts it into a list of arguments, and passes that list to another command to execute. \n\n- Run a command using the input data as arguments:\n command1 | xargs command2\n \n- Count lines in multiple files:\n ls *.txt | xargs wc -l\n\n- Cat a file and use the input data as an argument:\n cat file | xargs\n NOTE If no xargs command is given, xargs uses 'echo' as the command.\n\n- The same as above except it executes the command once per argument (-n 1):\n cat file | xargs -n 1\n\n- Create 10 sequential .txt files. The '-I {}' symbolizes all the input:\n seq 10 | xargs -I {} touch {}.txt\n\n- Delete files with '.log' extension found by 'find'. The -print0 in 'find' and -0 in 'xargs' use a null character as a delimiter, ensuring filenames with spaces or special characters are handled correctly.\n find . -name \"*.log\" -print0 | xargs -0 rm -f\n \n- Find and delete all backup files (.bak). The '-p' option is useful for destructive operations, as it displays the command to be executed and asks for user confirmation (y/n).\n find . -type f -name \"*.bak\" | xargs -p rm\n\n- The '-d' option sets the delimiter (spaces by default):\n ls | xargs -n 1 (Files/directories with spaces are a problem.)\n ls | xargs -n 1 -d \\n (Uses new line as delimiter and problem solved!)\n \n- xargs can print (-a) the contents of a file to stdout. We can use '-p' to prompt for 'y/n' before executing. We can use '-r' to only execute if stdin is not empty.\n xargs -a 1.txt\n xargs -p -a 1.txt\n xargs -r -p -a 1.txt\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!", "'xargs' - execute command lines from standard input - Video Man Pages", "tUkQcvytVtw", 589, false, "https://www.youtube.com/watch?v=tUkQcvytVtw", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022800_'xargs' - execute command lines from standard input - Video Man Pages.mp4", false, 35, ~U[2026-02-28 14:01:30Z]] 05:06:27.619 [debug] QUERY OK source="sources" db=0.5ms idle=847.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:06:27.627 [debug] QUERY OK source="media_items" db=7.7ms queue=0.1ms idle=17.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-26 14:00:25Z], 35] 05:06:27.632 [debug] QUERY OK source="media_items" db=3.8ms idle=25.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" ["Ever had a computer chair or office chair that was no longer able to maintain its height? There's a few DIY fixes that involve cutting PVC pipe and using metal clamps, but if you're like me, you probably would prefer a ready-made, out-of-the-box fix. I found a cheap product that works!\n\n► https://amzn.to/3ZWguh4 - Office Chair Hero Clamps\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!", "Cheap Fix For Sinking Computer Chairs And Office Chairs", "a6be8232-eef9-4e8e-981b-9adaf26ab7b6", "I_urqL2bEX8", 212, false, "https://www.youtube.com/watch?v=I_urqL2bEX8", 2, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022600_Cheap Fix For Sinking Computer Chairs And Office Chairs.mp4", false, false, false, 35, [], 98, ~U[2026-02-26 14:00:25Z], ~U[2026-03-01 11:06:27Z], ~U[2026-03-01 11:06:27Z], "Ever had a computer chair or office chair that was no longer able to maintain its height? There's a few DIY fixes that involve cutting PVC pipe and using metal clamps, but if you're like me, you probably would prefer a ready-made, out-of-the-box fix. I found a cheap product that works!\n\n► https://amzn.to/3ZWguh4 - Office Chair Hero Clamps\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!", "Cheap Fix For Sinking Computer Chairs And Office Chairs", "I_urqL2bEX8", 212, false, "https://www.youtube.com/watch?v=I_urqL2bEX8", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022600_Cheap Fix For Sinking Computer Chairs And Office Chairs.mp4", false, 35, ~U[2026-02-26 14:00:25Z]] 05:06:27.635 [debug] QUERY OK source="sources" db=1.6ms queue=0.1ms idle=21.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] 05:06:27.643 [debug] QUERY OK source="media_items" db=8.1ms idle=18.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-23 14:00:50Z], 35] 05:06:27.648 [debug] QUERY OK source="media_items" db=3.2ms idle=25.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" ["KaOS is an independent, built from-scratch Linux distribution, that for many years was built using KDE Plasma, but they've now dropped Plasma in favor of Niri wth the Noctalia shell.\n\nREFERENCED:\n► https://kaosx.us/\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!", "KaOS Ditches KDE Plasma For Niri", "33138ecf-9df1-4b53-9a99-0ba383757c10", "XOmc0Q_NX-o", 1243, false, "https://www.youtube.com/watch?v=XOmc0Q_NX-o", 3, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022300_KaOS Ditches KDE Plasma For Niri.mp4", false, false, false, 35, [], 98, ~U[2026-02-23 14:00:50Z], ~U[2026-03-01 11:06:27Z], ~U[2026-03-01 11:06:27Z], "KaOS is an independent, built from-scratch Linux distribution, that for many years was built using KDE Plasma, but they've now dropped Plasma in favor of Niri wth the Noctalia shell.\n\nREFERENCED:\n► https://kaosx.us/\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!", "KaOS Ditches KDE Plasma For Niri", "XOmc0Q_NX-o", 1243, false, "https://www.youtube.com/watch?v=XOmc0Q_NX-o", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022300_KaOS Ditches KDE Plasma For Niri.mp4", false, 35, ~U[2026-02-23 14:00:50Z]] 05:06:27.649 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=21.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:06:27.658 [debug] QUERY OK source="media_items" db=8.5ms queue=0.1ms idle=18.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-20 14:00:27Z], 35] 05:06:27.663 [debug] QUERY OK source="media_items" db=3.3ms queue=0.1ms idle=24.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 'pacman' package manager is one of the major distinguishing features of Arch Linux, but it does have issues on occasion, such as becoming really slow when installing software or updating the system. But these issues are easily fixed.\n\nREFERENCED:\n► https://wiki.archlinux.org/title/Pacman\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!", "Pacman Slow In Arch Linux? Here's The Fix!", "dbb6a6d1-9cd6-4256-aad6-2dd169cda788", "KcHcQHl8U8k", 371, false, "https://www.youtube.com/watch?v=KcHcQHl8U8k", 4, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022000_Pacman Slow In Arch Linux? Here's The Fix!.mp4", false, false, false, 35, [], 98, ~U[2026-02-20 14:00:27Z], ~U[2026-03-01 11:06:27Z], ~U[2026-03-01 11:06:27Z], "The 'pacman' package manager is one of the major distinguishing features of Arch Linux, but it does have issues on occasion, such as becoming really slow when installing software or updating the system. But these issues are easily fixed.\n\nREFERENCED:\n► https://wiki.archlinux.org/title/Pacman\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!", "Pacman Slow In Arch Linux? Here's The Fix!", "KcHcQHl8U8k", 371, false, "https://www.youtube.com/watch?v=KcHcQHl8U8k", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022000_Pacman Slow In Arch Linux? Here's The Fix!.mp4", false, 35, ~U[2026-02-20 14:00:27Z]] 05:06:27.665 [debug] QUERY OK source="sources" db=1.2ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 05:06:27.675 [debug] QUERY OK source="media_items" db=9.4ms idle=18.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-16 14:00:11Z], 35] 05:06:27.722 [debug] QUERY OK source="media_items" db=46.2ms queue=0.1ms idle=26.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 look at the latest release of iDeal OS, based on MX Linux 25.1 and Debian 13.3 Trixie, with KDE Plasma 6 desktop environment.\n\nREFERENCED:\n► https://ideal-os.xyz/\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 First Look AT iDeal OS", "7bfb5e7c-ec79-440e-8125-5574c97006e3", "7HW1c-_mrrg", 1457, false, "https://www.youtube.com/watch?v=7HW1c-_mrrg", 5, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e021600_A Quick First Look AT iDeal OS.mp4", false, false, false, 35, [], 98, ~U[2026-02-16 14:00:11Z], ~U[2026-03-01 11:06:27Z], ~U[2026-03-01 11:06:27Z], "Today, I'm taking a look at the latest release of iDeal OS, based on MX Linux 25.1 and Debian 13.3 Trixie, with KDE Plasma 6 desktop environment.\n\nREFERENCED:\n► https://ideal-os.xyz/\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 First Look AT iDeal OS", "7HW1c-_mrrg", 1457, false, "https://www.youtube.com/watch?v=7HW1c-_mrrg", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e021600_A Quick First Look AT iDeal OS.mp4", false, 35, ~U[2026-02-16 14:00:11Z]] 05:06:27.724 [debug] QUERY OK source="sources" db=1.2ms idle=64.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:06:27.734 [debug] QUERY OK source="media_items" db=9.2ms idle=62.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-13 14:01:26Z], 35] 05:06:27.744 [debug] QUERY OK source="media_items" db=7.8ms queue=0.1ms idle=70.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" ["On this episode of Hey DT:\n\n0:00 Intro\n0:18 What do you think about Niri?\n3:00 I know that you're not bald, but why are you wider now?\n5:41 How do I properly erase everything on my SSD? Complete wipe.\n7:43 Are you really editing videos in one take?\n9:25 It's been 5 years since your last Guix video.\n11:52 Do you have any footage of you using it (Kensington Orbit Trackball)?\n12:44 Why don't you mount your /home separately? Like from a btrfs subvolume?\n14:55 Don't you think you make linux more complicated and elitist?\n23:44 Thanks to Patrons\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!", "Hey, DT! You're Not Bald...But You Are Wide! (Plus Other Comments)", "fcbd094d-7ad5-406f-99e4-3c804ac31015", "uGJ1Nao0E1Q", 1500, false, "https://www.youtube.com/watch?v=uGJ1Nao0E1Q", 6, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e021300_Hey, DT! You're Not Bald...But You Are Wide! (Plus Other Comments).mp4", false, false, false, 35, [], 98, ~U[2026-02-13 14:01:26Z], ~U[2026-03-01 11:06:27Z], ~U[2026-03-01 11:06:27Z], "On this episode of Hey DT:\n\n0:00 Intro\n0:18 What do you think about Niri?\n3:00 I know that you're not bald, but why are you wider now?\n5:41 How do I properly erase everything on my SSD? Complete wipe.\n7:43 Are you really editing videos in one take?\n9:25 It's been 5 years since your last Guix video.\n11:52 Do you have any footage of you using it (Kensington Orbit Trackball)?\n12:44 Why don't you mount your /home separately? Like from a btrfs subvolume?\n14:55 Don't you think you make linux more complicated and elitist?\n23:44 Thanks to Patrons\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!", "Hey, DT! You're Not Bald...But You Are Wide! (Plus Other Comments)", "uGJ1Nao0E1Q", 1500, false, "https://www.youtube.com/watch?v=uGJ1Nao0E1Q", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e021300_Hey, DT! You're Not Bald...But You Are Wide! (Plus Other Comments).mp4", false, 35, ~U[2026-02-13 14:01:26Z]] 05:06:27.746 [debug] QUERY OK source="sources" db=1.3ms queue=0.3ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 05:06:27.755 [debug] QUERY OK source="media_items" db=8.8ms queue=0.1ms idle=24.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-10 16:30:47Z], 35] 05:06:27.760 [debug] QUERY OK source="media_items" db=3.7ms queue=0.1ms idle=31.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" ["How to install Arch Linux via the command line installation process. I will use UEFI, btrfs, zram, and install a popular Wayland compositor (niri). \n\nNOTE:\nThis video was re-uploaded in order to correct a major mistake (by omission) made in the first version of this video. I did not run the command to create the 'fstab' file. Oops! The solution is to make the /mnt/etc directory (mkdir -p /mnt/etc) and then run the 'gensftab' command (full command in the pinned comment below).\n\nREFERENCED:\n► https://wiki.archlinux.org/title/Installation_guide\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!", "An Arch Linux Installation Guide (2026)", "6e5cdc47-049d-448e-b8a2-2035d4543449", "BUYFe5ejxfo", 1439, false, "https://www.youtube.com/watch?v=BUYFe5ejxfo", 7, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e021000_An Arch Linux Installation Guide (2026).mp4", false, false, false, 35, [], 98, ~U[2026-02-10 16:30:47Z], ~U[2026-03-01 11:06:27Z], ~U[2026-03-01 11:06:27Z], "How to install Arch Linux via the command line installation process. I will use UEFI, btrfs, zram, and install a popular Wayland compositor (niri). \n\nNOTE:\nThis video was re-uploaded in order to correct a major mistake (by omission) made in the first version of this video. I did not run the command to create the 'fstab' file. Oops! The solution is to make the /mnt/etc directory (mkdir -p /mnt/etc) and then run the 'gensftab' command (full command in the pinned comment below).\n\nREFERENCED:\n► https://wiki.archlinux.org/title/Installation_guide\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!", "An Arch Linux Installation Guide (2026)", "BUYFe5ejxfo", 1439, false, "https://www.youtube.com/watch?v=BUYFe5ejxfo", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e021000_An Arch Linux Installation Guide (2026).mp4", false, 35, ~U[2026-02-10 16:30:47Z]] 05:06:27.762 [debug] QUERY OK source="sources" db=1.4ms queue=0.1ms idle=26.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:06:27.771 [debug] QUERY OK source="media_items" db=8.8ms queue=0.1ms idle=19.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-06 14:01:07Z], 35] 05:06:27.779 [debug] QUERY OK source="media_items" db=5.6ms queue=0.3ms idle=17.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" ["Introducing the new Xero Arch Installer, which is a beautiful, streamlined Arch Linux installer with a easy-to-use, modern TUI interface.\n\nREFERENCED:\n► https://github.com/xerolinux/XeroInstall\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!", "Transform Arch Linux Into XeroLinux", "0031e485-2c14-444f-8067-2b0be5c16172", "eJag0014isw", 908, false, "https://www.youtube.com/watch?v=eJag0014isw", 8, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e020600_Transform Arch Linux Into XeroLinux.mp4", false, false, false, 35, [], 98, ~U[2026-02-06 14:01:07Z], ~U[2026-03-01 11:06:27Z], ~U[2026-03-01 11:06:27Z], "Introducing the new Xero Arch Installer, which is a beautiful, streamlined Arch Linux installer with a easy-to-use, modern TUI interface.\n\nREFERENCED:\n► https://github.com/xerolinux/XeroInstall\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!", "Transform Arch Linux Into XeroLinux", "eJag0014isw", 908, false, "https://www.youtube.com/watch?v=eJag0014isw", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e020600_Transform Arch Linux Into XeroLinux.mp4", false, 35, ~U[2026-02-06 14:01:07Z]] 05:06:27.780 [debug] QUERY OK source="sources" db=0.6ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 05:06:27.790 [debug] QUERY OK source="media_items" db=9.0ms queue=0.1ms idle=18.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-02 14:00:44Z], 35] 05:06:27.796 [debug] QUERY OK source="media_items" db=4.6ms queue=0.1ms idle=19.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 a severe winter storm, I've spent the last 8 days without power. And that got me thinking...\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!", "Digital Detox And Being Self Sufficient", "4ecaa379-2524-47ab-9366-514109f7419e", "RQppXZ6H-J0", 1067, false, "https://www.youtube.com/watch?v=RQppXZ6H-J0", 9, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e020200_Digital Detox And Being Self Sufficient.mp4", false, false, false, 35, [], 98, ~U[2026-02-02 14:00:44Z], ~U[2026-03-01 11:06:27Z], ~U[2026-03-01 11:06:27Z], "After a severe winter storm, I've spent the last 8 days without power. And that got me thinking...\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!", "Digital Detox And Being Self Sufficient", "RQppXZ6H-J0", 1067, false, "https://www.youtube.com/watch?v=RQppXZ6H-J0", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e020200_Digital Detox And Being Self Sufficient.mp4", false, 35, ~U[2026-02-02 14:00:44Z]] 05:06:27.798 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=21.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:06:27.808 [debug] QUERY OK source="media_items" db=9.9ms queue=0.1ms 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-01-30 14:01:13Z], 35] 05:06:27.876 [debug] QUERY OK source="media_items" db=66.7ms idle=28.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 quick update after the ice storm that has left me without power for several days.\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!", "Not Bald Boomer Rants About Bad Weather", "264f2882-177c-4bbe-8c13-073b3828cea8", "iN-J51qDzpk", 216, false, "https://www.youtube.com/watch?v=iN-J51qDzpk", 10, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e013000_Not Bald Boomer Rants About Bad Weather.mp4", false, false, false, 35, [], 98, ~U[2026-01-30 14:01:13Z], ~U[2026-03-01 11:06:27Z], ~U[2026-03-01 11:06:27Z], "A quick update after the ice storm that has left me without power for several days.\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!", "Not Bald Boomer Rants About Bad Weather", "iN-J51qDzpk", 216, false, "https://www.youtube.com/watch?v=iN-J51qDzpk", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e013000_Not Bald Boomer Rants About Bad Weather.mp4", false, 35, ~U[2026-01-30 14:01:13Z]] 05:06:27.879 [debug] QUERY OK source="sources" db=1.7ms queue=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 05:06:27.891 [debug] QUERY OK source="media_items" db=11.9ms queue=0.1ms idle=83.6ms 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 14:00:25Z], 35] 05:06:27.898 [debug] QUERY OK source="media_items" db=5.1ms queue=0.1ms idle=94.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" ["Xonsh (sounds like \"consh\") is a modern, full-featured and cross-platform python shell. I recently switched to using Xonsh as my default user shell, but I ran into a big problem with it, mainly because I installed it the wrong way!\n\nREFERENCED:\n► https://xon.sh/\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!", "My Xonsh Shell Experiment Failed! (...Kind Of)", "27aa5b72-00b3-4eff-b50e-1554e2fb6181", "Iif4GpL6yrQ", 364, false, "https://www.youtube.com/watch?v=Iif4GpL6yrQ", 11, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e012600_My Xonsh Shell Experiment Failed! (...Kind Of).mp4", false, false, false, 35, [], 98, ~U[2026-01-26 14:00:25Z], ~U[2026-03-01 11:06:27Z], ~U[2026-03-01 11:06:27Z], "Xonsh (sounds like \"consh\") is a modern, full-featured and cross-platform python shell. I recently switched to using Xonsh as my default user shell, but I ran into a big problem with it, mainly because I installed it the wrong way!\n\nREFERENCED:\n► https://xon.sh/\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!", "My Xonsh Shell Experiment Failed! (...Kind Of)", "Iif4GpL6yrQ", 364, false, "https://www.youtube.com/watch?v=Iif4GpL6yrQ", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e012600_My Xonsh Shell Experiment Failed! (...Kind Of).mp4", false, 35, ~U[2026-01-26 14:00:25Z]] 05:06:27.900 [debug] QUERY OK source="sources" db=1.5ms queue=0.1ms idle=90.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 05:06:27.914 [debug] QUERY OK source="media_items" db=12.6ms queue=0.1ms idle=25.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-23 14:00:02Z], 35] 05:06:27.921 [debug] QUERY OK source="media_items" db=5.4ms queue=0.1ms idle=35.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" ["DankMaterialShell is a complete desktop shell for niri, Hyprland, MangoWC, Sway, labwc, Scroll, and other Wayland compositors. It replaces waybar, swaylock, swayidle, mako, fuzzel, polkit, and everything else you'd normally stitch together to make a desktop.\n\nREFERENCED:\n► https://github.com/AvengeMedia/DankMaterialShell\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!", "The Dank Material Shell - A Wayland Desktop Suite", "0da7e307-de07-45fb-920f-b935618c0ae7", "1ILZevPGgJw", 876, false, "https://www.youtube.com/watch?v=1ILZevPGgJw", 12, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e012300_The Dank Material Shell - A Wayland Desktop Suite.mp4", false, false, false, 35, [], 98, ~U[2026-01-23 14:00:02Z], ~U[2026-03-01 11:06:27Z], ~U[2026-03-01 11:06:27Z], "DankMaterialShell is a complete desktop shell for niri, Hyprland, MangoWC, Sway, labwc, Scroll, and other Wayland compositors. It replaces waybar, swaylock, swayidle, mako, fuzzel, polkit, and everything else you'd normally stitch together to make a desktop.\n\nREFERENCED:\n► https://github.com/AvengeMedia/DankMaterialShell\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!", "The Dank Material Shell - A Wayland Desktop Suite", "1ILZevPGgJw", 876, false, "https://www.youtube.com/watch?v=1ILZevPGgJw", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e012300_The Dank Material Shell - A Wayland Desktop Suite.mp4", false, 35, ~U[2026-01-23 14:00:02Z]] 05:06:27.923 [debug] QUERY OK source="sources" db=1.6ms queue=0.1ms idle=30.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:06:27.936 [debug] QUERY OK source="media_items" db=12.3ms queue=0.1ms idle=26.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-19 14:00:18Z], 35] 05:06:27.943 [debug] QUERY OK source="media_items" db=4.8ms queue=0.1ms 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" ["I switched to the Kensington Expert trackball about 5 years ago. I even did a video about it (https://www.youtube.com/watch?v=VaG4sCXTkrw). But recently I have been having a bit of hand pain, and I suspected that the mouse was the problem. So...I decided to try a different Kensington trackball--the Orbit! \n\nREFERENCED:\n► https://amzn.to/45eSLvF - Kensington Orbit Trackball Mouse\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!", "The Kensington Orbit Trackball Mouse (Will It Solve My Hand Pain?)", "7e3a91b3-5496-4f79-a4d5-e424022f5ee3", "BZqHn8w0MGg", 701, false, "https://www.youtube.com/watch?v=BZqHn8w0MGg", 13, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011900_The Kensington Orbit Trackball Mouse (Will It Solve My Hand Pain?).mp4", false, false, false, 35, [], 98, ~U[2026-01-19 14:00:18Z], ~U[2026-03-01 11:06:27Z], ~U[2026-03-01 11:06:27Z], "I switched to the Kensington Expert trackball about 5 years ago. I even did a video about it (https://www.youtube.com/watch?v=VaG4sCXTkrw). But recently I have been having a bit of hand pain, and I suspected that the mouse was the problem. So...I decided to try a different Kensington trackball--the Orbit! \n\nREFERENCED:\n► https://amzn.to/45eSLvF - Kensington Orbit Trackball Mouse\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!", "The Kensington Orbit Trackball Mouse (Will It Solve My Hand Pain?)", "BZqHn8w0MGg", 701, false, "https://www.youtube.com/watch?v=BZqHn8w0MGg", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011900_The Kensington Orbit Trackball Mouse (Will It Solve My Hand Pain?).mp4", false, 35, ~U[2026-01-19 14:00:18Z]] 05:06:27.946 [debug] QUERY OK source="sources" db=1.8ms queue=0.2ms idle=30.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:06:27.959 [debug] QUERY OK source="media_items" db=12.0ms queue=0.2ms idle=26.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-16 14:01:41Z], 35] 05:06:27.966 [debug] QUERY OK source="media_items" db=4.4ms queue=0.1ms idle=36.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 taking a quick first look at Niri, which is a scrollable-tiling Wayland compositor.\n\nREFERENCED:\n► https://github.com/YaLTeR/niri/\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 First Look At The Niri Window Manager", "52b0d375-1bef-4998-97d6-0f1f0c834d0a", "uiXiD5foFCI", 1003, false, "https://www.youtube.com/watch?v=uiXiD5foFCI", 14, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011600_A Quick First Look At The Niri Window Manager.mp4", false, false, false, 35, [], 98, ~U[2026-01-16 14:01:41Z], ~U[2026-03-01 11:06:27Z], ~U[2026-03-01 11:06:27Z], "I'm taking a quick first look at Niri, which is a scrollable-tiling Wayland compositor.\n\nREFERENCED:\n► https://github.com/YaLTeR/niri/\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 First Look At The Niri Window Manager", "uiXiD5foFCI", 1003, false, "https://www.youtube.com/watch?v=uiXiD5foFCI", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011600_A Quick First Look At The Niri Window Manager.mp4", false, 35, ~U[2026-01-16 14:01:41Z]] 05:06:27.969 [debug] QUERY OK source="sources" db=2.1ms queue=0.1ms idle=30.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:06:27.983 [debug] QUERY OK source="media_items" db=13.2ms queue=0.1ms idle=27.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 14:01:02Z], 35] 05:06:27.990 [debug] QUERY OK source="media_items" db=4.9ms queue=0.1ms idle=37.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 is a new \"software movement\" that seems to be gaining ground. It's the \"fair source\" movement, and it's quite discriminatory in nature. Sadly, I see some within the FOSS community actually advocating for \"fair source.\"\n\nREFERENCED:\n► https://fair.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!", "Fair Source Software Is Incredibly Unfair", "2c8ac2a2-c0fd-497a-8a15-aee749245514", "V_L0MNy8Mpg", 929, false, "https://www.youtube.com/watch?v=V_L0MNy8Mpg", 15, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011200_Fair Source Software Is Incredibly Unfair.mp4", false, false, false, 35, [], 98, ~U[2026-01-12 14:01:02Z], ~U[2026-03-01 11:06:27Z], ~U[2026-03-01 11:06:27Z], "There is a new \"software movement\" that seems to be gaining ground. It's the \"fair source\" movement, and it's quite discriminatory in nature. Sadly, I see some within the FOSS community actually advocating for \"fair source.\"\n\nREFERENCED:\n► https://fair.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!", "Fair Source Software Is Incredibly Unfair", "V_L0MNy8Mpg", 929, false, "https://www.youtube.com/watch?v=V_L0MNy8Mpg", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011200_Fair Source Software Is Incredibly Unfair.mp4", false, 35, ~U[2026-01-12 14:01:02Z]] 05:06:27.992 [debug] QUERY OK source="sources" db=1.6ms queue=0.1ms idle=31.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:06:28.006 [debug] QUERY OK source="media_items" db=12.8ms queue=0.1ms idle=27.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-08 14:00:13Z], 35] 05:06:28.012 [debug] QUERY OK source="media_items" db=4.6ms queue=0.1ms 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" ["I've been using Qtile on-and-off again for probably a decade or longer. Qtile is a full-featured, hackable tiling window manager written and configured in Python. It was originally written for X11 but it does have a Wayland session. Let's try it out!\n\nREFERENCED:\n► https://qtile.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!", "Qtile On Wayland...It Kinda Works!", "778dec55-8c70-46b8-8794-f0bd554db2c4", "8YdBCIqhzs8", 1048, false, "https://www.youtube.com/watch?v=8YdBCIqhzs8", 16, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010800_Qtile On Wayland...It Kinda Works!.mp4", false, false, false, 35, [], 98, ~U[2026-01-08 14:00:13Z], ~U[2026-03-01 11:06:28Z], ~U[2026-03-01 11:06:28Z], "I've been using Qtile on-and-off again for probably a decade or longer. Qtile is a full-featured, hackable tiling window manager written and configured in Python. It was originally written for X11 but it does have a Wayland session. Let's try it out!\n\nREFERENCED:\n► https://qtile.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!", "Qtile On Wayland...It Kinda Works!", "8YdBCIqhzs8", 1048, false, "https://www.youtube.com/watch?v=8YdBCIqhzs8", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010800_Qtile On Wayland...It Kinda Works!.mp4", false, 35, ~U[2026-01-08 14:00:13Z]] 05:06:28.015 [debug] QUERY OK source="sources" db=1.7ms queue=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" = ?) [35] 05:06:28.028 [debug] QUERY OK source="media_items" db=12.2ms queue=0.2ms idle=26.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-04 14:00:07Z], 35] 05:06:28.035 [debug] QUERY OK source="media_items" db=4.1ms queue=0.1ms idle=37.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" ["We have entered a new age of programming. It is the age of \"vibe coding,\" which is using A.I. tools like ChatGPT or Gemini to write your programs.\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!", "Vibe Coding Is The Evolution Of Programming", "99e4861a-01d0-4037-a6f0-d7145e61bdb4", "2wfs0A94_T4", 870, false, "https://www.youtube.com/watch?v=2wfs0A94_T4", 17, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010400_Vibe Coding Is The Evolution Of Programming.mp4", false, false, false, 35, [], 98, ~U[2026-01-04 14:00:07Z], ~U[2026-03-01 11:06:28Z], ~U[2026-03-01 11:06:28Z], "We have entered a new age of programming. It is the age of \"vibe coding,\" which is using A.I. tools like ChatGPT or Gemini to write your programs.\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!", "Vibe Coding Is The Evolution Of Programming", "2wfs0A94_T4", 870, false, "https://www.youtube.com/watch?v=2wfs0A94_T4", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010400_Vibe Coding Is The Evolution Of Programming.mp4", false, 35, ~U[2026-01-04 14:00:07Z]] 05:06:28.038 [debug] QUERY OK source="sources" db=2.0ms queue=0.2ms idle=29.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] 05:06:28.051 [debug] QUERY OK source="media_items" db=12.3ms queue=0.1ms idle=26.6ms 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 14:01:04Z], 35] 05:06:28.059 [debug] QUERY OK source="media_items" db=5.9ms queue=0.1ms idle=36.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 'awk command' is really an entire programming language used for working with files and text.\n\n- Print a file (similar to 'cat'):\n awk '{print}' path/to/file\n OR\n awk '{print $0}' path/to/file\n\n- Print the 2nd field of each line:\n awk '{print $2}' path/to/file\n\n- Print the last field of each line:\n awk '{print $NF}' path/to/file\n\n- Search for lines containing 'string' and print the second field of those lines:\n awk '/string/ {print $2}' path/to/file\n\n- Use a different field separator (instead of space) and print 1st and 7th fields with a TAB in between:\n awk -F \":\" '{print $1 \"\\t\" $7}' /etc/passwd\n\n- Find a specific string in any column:\n ps -ef | awk '{ if($NF == \"/usr/bin/pipewire\") print $0};'\n NOTE We search if the last field is '/usr/bin/pipewire' and print the line.\n\n- Search 1st field if it starts with 'b' or 'c', then prints the line:\n awk '$1 ~ /^[b,c]/ {print $0}' .bashrc\n NOTE The '~' character is the regex match operator.\n\n- Use the 'substr' function to print each record from the 2nd character onward:\n awk '{print substr($0, 2)}' .bashrc\n NOTE It essentially prints the document but omits the first character of each line.\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!", "'awk' - a programming language for working on files - Video Man Pages", "bcdc5ffe-e6b6-4924-9e43-8353ec964746", "cK1JMK7Ckq0", 491, false, "https://www.youtube.com/watch?v=cK1JMK7Ckq0", 18, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010100_'awk' - a programming language for working on files - Video Man Pages.mp4", false, false, false, 35, [], 98, ~U[2026-01-01 14:01:04Z], ~U[2026-03-01 11:06:28Z], ~U[2026-03-01 11:06:28Z], "The 'awk command' is really an entire programming language used for working with files and text.\n\n- Print a file (similar to 'cat'):\n awk '{print}' path/to/file\n OR\n awk '{print $0}' path/to/file\n\n- Print the 2nd field of each line:\n awk '{print $2}' path/to/file\n\n- Print the last field of each line:\n awk '{print $NF}' path/to/file\n\n- Search for lines containing 'string' and print the second field of those lines:\n awk '/string/ {print $2}' path/to/file\n\n- Use a different field separator (instead of space) and print 1st and 7th fields with a TAB in between:\n awk -F \":\" '{print $1 \"\\t\" $7}' /etc/passwd\n\n- Find a specific string in any column:\n ps -ef | awk '{ if($NF == \"/usr/bin/pipewire\") print $0};'\n NOTE We search if the last field is '/usr/bin/pipewire' and print the line.\n\n- Search 1st field if it starts with 'b' or 'c', then prints the line:\n awk '$1 ~ /^[b,c]/ {print $0}' .bashrc\n NOTE The '~' character is the regex match operator.\n\n- Use the 'substr' function to print each record from the 2nd character onward:\n awk '{print substr($0, 2)}' .bashrc\n NOTE It essentially prints the document but omits the first character of each line.\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!", "'awk' - a programming language for working on files - Video Man Pages", "cK1JMK7Ckq0", 491, false, "https://www.youtube.com/watch?v=cK1JMK7Ckq0", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010100_'awk' - a programming language for working on files - Video Man Pages.mp4", false, 35, ~U[2026-01-01 14:01:04Z]] 05:06:28.061 [debug] QUERY OK source="sources" db=1.6ms queue=0.1ms idle=31.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:06:28.074 [debug] QUERY OK source="media_items" db=11.7ms queue=0.1ms idle=27.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-30 14:00:16Z], 35] 05:06:28.080 [debug] QUERY OK source="media_items" db=4.5ms queue=0.1ms idle=36.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 'cut' command is used to cut sections from lines of text.\n\n- Print the third character (-c) on each line:\n cut -c 3 /path/to/file\n command | cut -c 3\n\n- Print characters 5-10 of each line of a file:\n cut -c 5-10 path/to/file\n\n- Split each line using a delimiter into fields, and print fields (-f) 2 and 5:\n cut -f 2,5 path/to/file\n NOTE The default delimiter is the TAB.\n\n- Split each line using a specified delimiter (-d) and print field 4 and all fields after:\n cut -d \":\" -f 4- /etc/passwd\n NOTE The /etc/passwd file uses colons to separate fields of information.\n\n- Split each line using a specified delimiter (-d) and print field 4 and all fields previous:\n cut -d \":\" -f -4 /etc/passwd\n\n- Do not print lines that do not contain the delimiter (-s):\n cut -d \" \" -f -4 -s .bashrc\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!", "'cut' - cut sections from lines of text - Video Man Pages", "04dd0f03-260d-4326-88e4-d391b933780c", "9hoTL0GP2uQ", 283, false, "https://www.youtube.com/watch?v=9hoTL0GP2uQ", 19, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e123000_'cut' - cut sections from lines of text - Video Man Pages.mp4", false, false, false, 35, [], 98, ~U[2025-12-30 14:00:16Z], ~U[2026-03-01 11:06:28Z], ~U[2026-03-01 11:06:28Z], "The 'cut' command is used to cut sections from lines of text.\n\n- Print the third character (-c) on each line:\n cut -c 3 /path/to/file\n command | cut -c 3\n\n- Print characters 5-10 of each line of a file:\n cut -c 5-10 path/to/file\n\n- Split each line using a delimiter into fields, and print fields (-f) 2 and 5:\n cut -f 2,5 path/to/file\n NOTE The default delimiter is the TAB.\n\n- Split each line using a specified delimiter (-d) and print field 4 and all fields after:\n cut -d \":\" -f 4- /etc/passwd\n NOTE The /etc/passwd file uses colons to separate fields of information.\n\n- Split each line using a specified delimiter (-d) and print field 4 and all fields previous:\n cut -d \":\" -f -4 /etc/passwd\n\n- Do not print lines that do not contain the delimiter (-s):\n cut -d \" \" -f -4 -s .bashrc\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!", "'cut' - cut sections from lines of text - Video Man Pages", "9hoTL0GP2uQ", 283, false, "https://www.youtube.com/watch?v=9hoTL0GP2uQ", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e123000_'cut' - cut sections from lines of text - Video Man Pages.mp4", false, 35, ~U[2025-12-30 14:00:16Z]] 05:06:28.083 [debug] QUERY OK source="sources" db=1.9ms queue=0.1ms idle=30.0ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-01 11:06:28Z], ~U[2026-03-01 11:06:28Z], 35] 05:06:28.098 [debug] QUERY OK source="media_items" db=13.8ms queue=0.1ms idle=25.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")))) [35] 05:06:28.111 [debug] QUERY OK source="media_items" db=11.8ms queue=0.1ms idle=37.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")))) [35] 05:06:28.113 [debug] QUERY OK source="media_items" db=2.2ms queue=0.1ms idle=37.3ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [35] 05:06:28.121 [debug] QUERY OK source="tasks" db=2.7ms idle=20.4ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189069, 35, ~U[2026-03-01 11:06:28Z], ~U[2026-03-01 11:06:28Z]] 05:06:28.123 [info] {"args":{"id":35},"id":188983,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":172890070,"event":"job:stop","queue_time":688394,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 05:06:29.790 [info] {"args":{"id":30},"id":189028,"meta":{},"system_time":1772363189789999069,"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"]} 05:06:29.791 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms 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" = ?) [30] 05:06:29.792 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=277.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:06:29.807 [debug] QUERY OK source="media_items" db=14.3ms idle=278.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")))) [30] 05:06:29.809 [debug] QUERY OK source="media_items" db=1.1ms idle=25.6ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [30] 05:06:29.810 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=19.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] 05:06:29.811 [debug] QUERY OK source="settings" db=0.4ms idle=19.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:06:29.812 [debug] QUERY OK source="settings" db=0.2ms idle=19.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:06:29.825 [debug] QUERY OK source="media_items" db=9.7ms 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 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [30] 05:06:29.829 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 05:06:29.829 [debug] Current batch of media processed. Will check again in 1000ms 05:06:29.830 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=20.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:06:29.830 [debug] QUERY OK source="settings" db=0.3ms idle=20.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:06:29.831 [debug] QUERY OK source="settings" db=0.3ms idle=19.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:06:29.832 [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/ba/5f/ba5f3388f8a8c4373f12ec4ac221d6ee024cf9995ad3369b2e8fdd6557f25d08.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/9c/a9/9ca9e5737858fe256612401a3e1ee8e51a7a122697d3d15b5eeb66247f73205d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:06:30.830 [debug] Current batch of media processed. Will check again in 1000ms 05:06:31.831 [debug] Current batch of media processed. Will check again in 1000ms 05:06:32.832 [debug] Current batch of media processed. Will check again in 1000ms 05:06:33.833 [debug] Current batch of media processed. Will check again in 1000ms 05:06:34.834 [debug] Current batch of media processed. Will check again in 1000ms 05:06:35.835 [debug] Current batch of media processed. Will check again in 1000ms 05:06:36.836 [debug] Current batch of media processed. Will check again in 1000ms 05:06:37.837 [debug] Current batch of media processed. Will check again in 1000ms 05:06:38.838 [debug] Current batch of media processed. Will check again in 1000ms 05:06:39.839 [debug] Current batch of media processed. Will check again in 1000ms 05:06:39.906 [info] {"source":"oban","duration":22860,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:06:40.840 [debug] Current batch of media processed. Will check again in 1000ms 05:06:41.841 [debug] Current batch of media processed. Will check again in 1000ms 05:06:42.843 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "RAM Pricing is absolutely insane, storage is following along, nobody is buying computers anymore and the industry is an absolute mess\n\n==========Support The Channel==========\n► Patreon: https://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#SteamMachine #linux #Computer #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" => 1120, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022800_No One Is Buying Computers Anymore.mp4", "id" => "iPyTLOySnSc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=iPyTLOySnSc", "playlist_index" => 1, "timestamp" => 1772296216, "title" => "No One Is Buying Computers Anymore", "upload_date" => "20260228"} 05:06:42.844 [debug] QUERY OK source="sources" db=0.6ms queue=0.2ms idle=1328.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:06:42.845 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1330.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:06:42.860 [debug] QUERY OK source="media_items" db=14.9ms queue=0.1ms idle=1331.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-28 16:30:16Z], 30] 05:06:42.865 [debug] QUERY OK source="media_items" db=3.2ms queue=0.1ms idle=1046.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" ["RAM Pricing is absolutely insane, storage is following along, nobody is buying computers anymore and the industry is an absolute mess\n\n==========Support The Channel==========\n► Patreon: https://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#SteamMachine #linux #Computer #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.", "No One Is Buying Computers Anymore", "3f9c0587-1122-41f8-9088-7eca6c9ab849", "iPyTLOySnSc", 1120, false, "https://www.youtube.com/watch?v=iPyTLOySnSc", 1, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022800_No One Is Buying Computers Anymore.mp4", false, false, false, 30, [], 98, ~U[2026-02-28 16:30:16Z], ~U[2026-03-01 11:06:42Z], ~U[2026-03-01 11:06:42Z], "RAM Pricing is absolutely insane, storage is following along, nobody is buying computers anymore and the industry is an absolute mess\n\n==========Support The Channel==========\n► Patreon: https://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#SteamMachine #linux #Computer #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.", "No One Is Buying Computers Anymore", "iPyTLOySnSc", 1120, false, "https://www.youtube.com/watch?v=iPyTLOySnSc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022800_No One Is Buying Computers Anymore.mp4", false, 30, ~U[2026-02-28 16:30:16Z]] 05:06:42.866 [debug] QUERY OK source="sources" db=0.7ms idle=48.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] 05:06:42.867 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=22.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] 05:06:42.870 [debug] QUERY OK source="media_items" db=2.5ms queue=0.1ms idle=22.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 [2376369] 05:06:42.871 [debug] Current batch of media processed. Will check again in 1000ms 05:06:43.871 [debug] Current batch of media processed. Will check again in 1000ms 05:06:44.872 [debug] Current batch of media processed. Will check again in 1000ms 05:06:45.873 [debug] Current batch of media processed. Will check again in 1000ms 05:06:46.839 [info] {"args":{"id":52},"id":189067,"meta":{},"system_time":1772363206839056650,"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"]} 05:06:46.840 [debug] QUERY OK source="sources" db=0.4ms idle=324.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] 05:06:46.840 [debug] QUERY OK source="settings" db=0.3ms idle=325.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:06:46.841 [debug] QUERY OK source="media_profiles" db=0.3ms idle=326.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] 05:06:46.842 [debug] QUERY OK source="settings" db=0.3ms idle=9.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:06:46.842 [debug] Fetching recent media IDs from YouTube RSS feed for source: UC9H0HzpKf5JlazkADWnW1Jw 05:06:46.875 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "By now you probably know about Kent Overstreet's antics in the Linux kernel with BcacheFS but we're not here to talk about that today, instead we're here to talk his AI chat bot which he is convinced is sentient and feels real emotion.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWebsite: https://poc.bcachefs.org/\nWhite Paper: https://poc.bcachefs.org/paper.pdf\nThe Register: https://www.theregister.com/2026/02/25/bcachefs_creator_ai/\nReddit Post: https://www.reddit.com/r/bcachefs/comments/1rblll1/the_blog_of_an_llm_saying_its_owned_by_kent_and/\nFunny Thread: https://social.vlhl.dev/notice/B3gj1a7Xfl0evR4Hke\nIRC Logs: https://paste.xinu.at/6atmCN\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AI #LLM #Linux #LinuxKernel #FOSS #OpenSource\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 1702, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022600_BCacheFS Developer Deployed His AI Girlfriend Helper.mp4", "id" => "oOzDI3mCv58", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=oOzDI3mCv58", "playlist_index" => 2, "timestamp" => 1772144938, "title" => "BCacheFS Developer Deployed His AI Girlfriend Helper", "upload_date" => "20260226"} 05:06:46.875 [debug] QUERY OK source="sources" db=0.4ms 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 (?)) [30] 05:06:46.876 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=36.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:06:46.888 [debug] QUERY OK source="media_items" db=11.1ms queue=0.1ms idle=36.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 22:28:58Z], 30] 05:06:46.892 [debug] QUERY OK source="media_items" db=2.9ms idle=47.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" ["By now you probably know about Kent Overstreet's antics in the Linux kernel with BcacheFS but we're not here to talk about that today, instead we're here to talk his AI chat bot which he is convinced is sentient and feels real emotion.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWebsite: https://poc.bcachefs.org/\nWhite Paper: https://poc.bcachefs.org/paper.pdf\nThe Register: https://www.theregister.com/2026/02/25/bcachefs_creator_ai/\nReddit Post: https://www.reddit.com/r/bcachefs/comments/1rblll1/the_blog_of_an_llm_saying_its_owned_by_kent_and/\nFunny Thread: https://social.vlhl.dev/notice/B3gj1a7Xfl0evR4Hke\nIRC Logs: https://paste.xinu.at/6atmCN\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AI #LLM #Linux #LinuxKernel #FOSS #OpenSource\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "BCacheFS Developer Deployed His AI Girlfriend Helper", "699d0374-c994-4550-b1fd-af165e10fcda", "oOzDI3mCv58", 1702, false, "https://www.youtube.com/watch?v=oOzDI3mCv58", 2, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022600_BCacheFS Developer Deployed His AI Girlfriend Helper.mp4", false, false, false, 30, [], 98, ~U[2026-02-26 22:28:58Z], ~U[2026-03-01 11:06:46Z], ~U[2026-03-01 11:06:46Z], "By now you probably know about Kent Overstreet's antics in the Linux kernel with BcacheFS but we're not here to talk about that today, instead we're here to talk his AI chat bot which he is convinced is sentient and feels real emotion.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWebsite: https://poc.bcachefs.org/\nWhite Paper: https://poc.bcachefs.org/paper.pdf\nThe Register: https://www.theregister.com/2026/02/25/bcachefs_creator_ai/\nReddit Post: https://www.reddit.com/r/bcachefs/comments/1rblll1/the_blog_of_an_llm_saying_its_owned_by_kent_and/\nFunny Thread: https://social.vlhl.dev/notice/B3gj1a7Xfl0evR4Hke\nIRC Logs: https://paste.xinu.at/6atmCN\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AI #LLM #Linux #LinuxKernel #FOSS #OpenSource\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "BCacheFS Developer Deployed His AI Girlfriend Helper", "oOzDI3mCv58", 1702, false, "https://www.youtube.com/watch?v=oOzDI3mCv58", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022600_BCacheFS Developer Deployed His AI Girlfriend Helper.mp4", false, 30, ~U[2026-02-26 22:28:58Z]] 05:06:46.893 [debug] QUERY OK source="sources" db=0.3ms idle=50.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:06:46.894 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=17.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] 05:06:46.895 [debug] QUERY OK source="media_items" db=0.7ms idle=18.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 [2362492] 05:06:46.895 [debug] Current batch of media processed. Will check again in 1000ms 05:06:47.141 [debug] Media ids fetched from RSS: ["AmqmI9SxdNc", "QwSDD2rvrbg", "M5fh85WVkPU", "AJGwm6P_f_8", "mfWhlH-5ooY", "eMl7jhLvHOQ", "GYBOJiYvtbI", "zMSL-kTF8LE", "lf9pprK5gg8", "WP69p26qNZY", "OuvUK9ZdjPs", "CA-0MvrvWAU", "-80I7UZL3hk", "hJ3wG8PVhPw", "HzeBu2mVff4"] 05:06:47.144 [debug] QUERY OK source="media_items" db=2.2ms idle=254.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" = ?) AND m0."media_id" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [52, "AmqmI9SxdNc", "QwSDD2rvrbg", "M5fh85WVkPU", "AJGwm6P_f_8", "mfWhlH-5ooY", "eMl7jhLvHOQ", "GYBOJiYvtbI", "zMSL-kTF8LE", "lf9pprK5gg8", "WP69p26qNZY", "OuvUK9ZdjPs", "CA-0MvrvWAU", "-80I7UZL3hk", "hJ3wG8PVhPw", "HzeBu2mVff4"] 05:06:47.147 [debug] QUERY OK source="media_items" db=1.3ms idle=254.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")))) [52] 05:06:47.154 [debug] QUERY OK source="tasks" db=0.5ms queue=0.1ms idle=257.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189070, 1301334, ~U[2026-03-01 11:06:47Z], ~U[2026-03-01 11:06:47Z]] 05:06:47.161 [debug] QUERY OK source="tasks" db=1.1ms queue=0.1ms idle=6.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189071, 1301335, ~U[2026-03-01 11:06:47Z], ~U[2026-03-01 11:06:47Z]] 05:06:47.163 [info] {"args":{"id":1301334},"id":189070,"meta":{},"system_time":1772363207163118787,"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"]} 05:06:47.163 [info] {"args":{"id":1301335},"id":189071,"meta":{},"system_time":1772363207163259353,"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"]} 05:06:47.165 [debug] QUERY OK source="media_items" db=1.5ms idle=4.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1301335] 05:06:47.165 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:06:47.166 [debug] QUERY OK source="media_items" db=2.4ms idle=4.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1301334] 05:06:47.166 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:06:47.167 [debug] QUERY OK source="sources" db=1.6ms 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] 05:06:47.168 [debug] QUERY OK source="sources" db=1.8ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 05:06:47.169 [debug] QUERY OK source="media_profiles" db=1.6ms 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] 05:06:47.170 [debug] QUERY OK source="media_profiles" db=1.4ms 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] 05:06:47.172 [debug] QUERY OK source="media_items" db=2.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 [1301335] 05:06:47.173 [debug] QUERY OK source="media_items" db=0.9ms 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 [1301334] 05:06:47.174 [debug] QUERY OK source="media_metadata" db=0.4ms 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" = ?) [1301335] 05:06:47.175 [debug] QUERY OK source="media_profiles" db=1.0ms queue=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] 05:06:47.175 [debug] QUERY OK source="tasks" db=1.2ms queue=0.1ms idle=1.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189072, 1301347, ~U[2026-03-01 11:06:47Z], ~U[2026-03-01 11:06:47Z]] 05:06:47.176 [debug] QUERY OK source="settings" db=0.5ms 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 [] 05:06:47.177 [debug] QUERY OK source="media_metadata" db=0.9ms 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" = ?) [1301334] 05:06:47.178 [debug] QUERY OK source="settings" db=1.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 [] 05:06:47.179 [debug] QUERY OK source="media_profiles" db=1.3ms 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] 05:06:47.179 [debug] Running yt-dlp command for action: get_downloadable_status 05:06:47.180 [debug] QUERY OK source="settings" db=0.8ms 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 [] 05:06:47.181 [debug] QUERY OK source="settings" db=0.8ms 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 [] 05:06:47.182 [debug] QUERY OK source="settings" db=1.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 [] 05:06:47.183 [debug] Running yt-dlp command for action: get_downloadable_status 05:06:47.183 [debug] QUERY OK source="settings" db=0.7ms queue=0.2ms 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 [] 05:06:47.184 [debug] QUERY OK source="settings" db=0.8ms queue=0.1ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:06:47.185 [debug] QUERY OK source="settings" db=0.8ms 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 [] 05:06:47.185 [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/3b/95/3b95c4ca25e6147426b3f1b1abf0208093a69edb279f47262cafc844dd7503a5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:06:47.186 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:06:47.187 [debug] QUERY OK source="settings" db=0.6ms 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 [] 05:06:47.187 [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/a9/07/a907455d7040e35e19debbd24ec2b0451b5a949f4835bb8723e72817c9d0aab8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:06:47.190 [debug] QUERY OK source="tasks" db=0.5ms idle=4.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189073, 1301392, ~U[2026-03-01 11:06:47Z], ~U[2026-03-01 11:06:47Z]] 05:06:47.197 [debug] QUERY OK source="tasks" db=0.7ms idle=8.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189074, 1301393, ~U[2026-03-01 11:06:47Z], ~U[2026-03-01 11:06:47Z]] 05:06:47.204 [debug] QUERY OK source="tasks" db=0.8ms idle=8.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189075, 1301394, ~U[2026-03-01 11:06:47Z], ~U[2026-03-01 11:06:47Z]] 05:06:47.210 [debug] QUERY OK source="tasks" db=0.7ms idle=8.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189076, 1301395, ~U[2026-03-01 11:06:47Z], ~U[2026-03-01 11:06:47Z]] 05:06:47.219 [debug] QUERY OK source="tasks" db=0.6ms queue=0.1ms idle=8.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189077, 1301397, ~U[2026-03-01 11:06:47Z], ~U[2026-03-01 11:06:47Z]] 05:06:47.227 [debug] QUERY OK source="tasks" db=1.0ms idle=8.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189078, 1301398, ~U[2026-03-01 11:06:47Z], ~U[2026-03-01 11:06:47Z]] 05:06:47.235 [debug] QUERY OK source="tasks" db=1.0ms idle=9.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189079, 1301399, ~U[2026-03-01 11:06:47Z], ~U[2026-03-01 11:06:47Z]] 05:06:47.245 [debug] QUERY OK source="tasks" db=1.2ms idle=11.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189080, 1301400, ~U[2026-03-01 11:06:47Z], ~U[2026-03-01 11:06:47Z]] 05:06:47.250 [debug] QUERY OK source="tasks" db=1.1ms idle=7.1ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189081, 52, ~U[2026-03-01 11:06:47Z], ~U[2026-03-01 11:06:47Z]] 05:06:47.252 [info] {"args":{"id":52},"id":189067,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":411708,"event":"job:stop","queue_time":950005,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 05:06:47.896 [debug] Current batch of media processed. Will check again in 1000ms 05:06:48.898 [debug] Current batch of media processed. Will check again in 1000ms 05:06:49.899 [debug] Current batch of media processed. Will check again in 1000ms 05:06:50.900 [debug] Current batch of media processed. Will check again in 1000ms 05:06:51.901 [debug] Current batch of media processed. Will check again in 1000ms 05:06:52.902 [debug] Current batch of media processed. Will check again in 1000ms 05:06:53.905 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "For a long time Ladybird browser was going to adopt Swift lang but recently they did a port over to Rust and not just that, used AI to start off the port and this lead to a bit of controversy.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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://ladybird.org/posts/adopting-rust/\nLadybird Swift Issue: https://github.com/LadybirdBrowser/ladybird/issues/933\nPodcast Clip: https://www.youtube.com/watch?v=DSEZ2ZYLdHg\nTwitter Post: https://x.com/awesomekling/status/1822241531501162806\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Rust #Swift #Ladybird #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" => 1095, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022500_Ladybird Browser Gave Up C++ For Rust Lang.mp4", "id" => "lBd5QGjCcGc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=lBd5QGjCcGc", "playlist_index" => 3, "timestamp" => 1772037018, "title" => "Ladybird Browser Gave Up C++ For Rust Lang", "upload_date" => "20260225"} 05:06:53.908 [debug] QUERY OK source="sources" db=1.7ms queue=0.1ms idle=1391.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:06:53.911 [debug] QUERY OK source="sources" db=1.5ms queue=0.1ms idle=1394.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:06:53.949 [debug] QUERY OK source="media_items" db=36.4ms queue=0.3ms idle=1397.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-25 16:30:18Z], 30] 05:06:53.961 [debug] QUERY OK source="media_items" db=8.1ms queue=0.1ms idle=1083.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" ["For a long time Ladybird browser was going to adopt Swift lang but recently they did a port over to Rust and not just that, used AI to start off the port and this lead to a bit of controversy.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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://ladybird.org/posts/adopting-rust/\nLadybird Swift Issue: https://github.com/LadybirdBrowser/ladybird/issues/933\nPodcast Clip: https://www.youtube.com/watch?v=DSEZ2ZYLdHg\nTwitter Post: https://x.com/awesomekling/status/1822241531501162806\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Rust #Swift #Ladybird #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.", "Ladybird Browser Gave Up C++ For Rust Lang", "4bad3bb9-af36-4310-b5d5-f3ccdfac3797", "lBd5QGjCcGc", 1095, false, "https://www.youtube.com/watch?v=lBd5QGjCcGc", 3, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022500_Ladybird Browser Gave Up C++ For Rust Lang.mp4", false, false, false, 30, [], 98, ~U[2026-02-25 16:30:18Z], ~U[2026-03-01 11:06:53Z], ~U[2026-03-01 11:06:53Z], "For a long time Ladybird browser was going to adopt Swift lang but recently they did a port over to Rust and not just that, used AI to start off the port and this lead to a bit of controversy.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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://ladybird.org/posts/adopting-rust/\nLadybird Swift Issue: https://github.com/LadybirdBrowser/ladybird/issues/933\nPodcast Clip: https://www.youtube.com/watch?v=DSEZ2ZYLdHg\nTwitter Post: https://x.com/awesomekling/status/1822241531501162806\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Rust #Swift #Ladybird #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.", "Ladybird Browser Gave Up C++ For Rust Lang", "lBd5QGjCcGc", 1095, false, "https://www.youtube.com/watch?v=lBd5QGjCcGc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022500_Ladybird Browser Gave Up C++ For Rust Lang.mp4", false, 30, ~U[2026-02-25 16:30:18Z]] 05:06:53.965 [debug] QUERY OK source="sources" db=3.0ms queue=0.1ms idle=90.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:06:53.968 [debug] QUERY OK source="media_profiles" db=1.9ms queue=0.3ms idle=58.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] 05:06:53.973 [debug] QUERY OK source="media_items" db=2.6ms queue=0.1ms idle=59.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 [2352916] 05:06:53.974 [debug] Current batch of media processed. Will check again in 1000ms 05:06:54.603 [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/3b/95/3b95c4ca25e6147426b3f1b1abf0208093a69edb279f47262cafc844dd7503a5.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. 05:06:54.603 [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" 05:06:54.605 [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" 05:06:54.612 [info] {"args":{"id":1301335},"id":189071,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7442216,"event":"job:stop","queue_time":159513,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:06:54.626 [info] {"args":{"id":1301347},"id":189072,"meta":{},"system_time":1772363214625714697,"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"]} 05:06:54.629 [debug] QUERY OK source="media_items" db=1.9ms queue=0.1ms idle=661.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] 05:06:54.630 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:06:54.632 [debug] QUERY OK source="sources" db=0.9ms queue=0.4ms idle=662.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:06:54.635 [debug] QUERY OK source="media_profiles" db=1.6ms queue=0.2ms idle=660.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] 05:06:54.639 [debug] QUERY OK source="media_items" db=2.2ms queue=0.2ms idle=24.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] 05:06:54.643 [debug] QUERY OK source="media_metadata" db=0.5ms queue=0.1ms idle=17.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] 05:06:54.645 [debug] QUERY OK source="media_profiles" db=1.1ms queue=0.2ms idle=14.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] 05:06:54.648 [debug] QUERY OK source="settings" db=0.8ms queue=0.3ms idle=15.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:06:54.650 [debug] QUERY OK source="settings" db=1.0ms queue=0.2ms idle=13.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:06:54.652 [debug] Running yt-dlp command for action: get_downloadable_status 05:06:54.658 [debug] QUERY OK source="settings" db=0.7ms queue=0.2ms idle=17.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:06:54.659 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=15.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:06:54.660 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=14.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:06:54.661 [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/60/a7/60a78d623ebf195f31f9d8afe6f950858a8c7933249c983c18c11388121becaf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:06:54.743 [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/a9/07/a907455d7040e35e19debbd24ec2b0451b5a949f4835bb8723e72817c9d0aab8.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. 05:06:54.744 [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" 05:06:54.745 [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" 05:06:54.748 [info] {"args":{"id":1301334},"id":189070,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7582681,"event":"job:stop","queue_time":159513,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:06:54.759 [info] {"args":{"id":1301392},"id":189073,"meta":{},"system_time":1772363214759174844,"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"]} 05:06:54.762 [debug] QUERY OK source="media_items" db=2.0ms queue=0.2ms idle=102.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] 05:06:54.763 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:06:54.766 [debug] QUERY OK source="sources" db=1.6ms queue=0.1ms idle=105.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:06:54.769 [debug] QUERY OK source="media_profiles" db=1.5ms queue=0.2ms idle=106.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] 05:06:54.772 [debug] QUERY OK source="media_items" db=2.0ms queue=0.3ms idle=22.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] 05:06:54.777 [debug] QUERY OK source="media_metadata" db=0.7ms idle=17.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] 05:06:54.778 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.2ms idle=14.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] 05:06:54.781 [debug] QUERY OK source="settings" db=0.8ms queue=0.2ms idle=14.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:06:54.783 [debug] QUERY OK source="settings" db=0.8ms queue=0.2ms 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 [] 05:06:54.785 [debug] Running yt-dlp command for action: get_downloadable_status 05:06:54.788 [debug] QUERY OK source="settings" db=0.7ms idle=14.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:06:54.790 [debug] QUERY OK source="settings" db=1.2ms queue=0.1ms idle=11.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:06:54.792 [debug] QUERY OK source="settings" db=0.9ms queue=0.2ms 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 [] 05:06:54.793 [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/37/12/3712d4e86058f497bd6d751c7ca6cf6c0af3bf50f8031fe1c35543ac64eca787.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:06:54.974 [debug] Current batch of media processed. Will check again in 1000ms 05:06:55.975 [debug] Current batch of media processed. Will check again in 1000ms 05:06:56.976 [debug] Current batch of media processed. Will check again in 1000ms 05:06:57.978 [debug] Current batch of media processed. Will check again in 1000ms 05:06:58.979 [debug] Current batch of media processed. Will check again in 1000ms 05:06:59.980 [debug] Current batch of media processed. Will check again in 1000ms 05:07:00.072 [info] {"source":"oban","duration":821,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:07:00.982 [debug] Current batch of media processed. Will check again in 1000ms 05:07:01.983 [debug] Current batch of media processed. Will check again in 1000ms 05:07:02.985 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "You probably know that HDMI 2.1 is a no go on Linux with an AMD GPU, well that's only if you're an HDMI Forum member, who says you have to listen to there rules if you just reverse engineer the support.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHDMI 2.1 FRL Work: https://github.com/mkopec/linux/\nReddit Post: https://www.reddit.com/r/linux_gaming/comments/1r793et/hdmi_21_frl_looking_for_testers/\nXilinux Article: https://www.phoronix.com/news/AMDGPU-HDMI-2.1-But-Xilinx\nAMD Thread: https://gitlab.freedesktop.org/drm/amd/-/issues/1417#note_3335295\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AMD #Linux #HDMI #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" => 1021, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022400_HDMI Forum Hates This New Kernel Patch.mp4", "id" => "N53wMB9d4As", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=N53wMB9d4As", "playlist_index" => 4, "timestamp" => 1771950616, "title" => "HDMI Forum Hates This New Kernel Patch", "upload_date" => "20260224"} 05:07:02.987 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=1064.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:07:02.988 [debug] QUERY OK source="sources" db=0.7ms idle=473.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:07:03.014 [debug] QUERY OK source="media_items" db=24.8ms queue=0.2ms idle=474.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-24 16:30:16Z], 30] 05:07:03.025 [debug] QUERY OK source="media_items" db=7.9ms queue=0.1ms idle=500.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 probably know that HDMI 2.1 is a no go on Linux with an AMD GPU, well that's only if you're an HDMI Forum member, who says you have to listen to there rules if you just reverse engineer the support.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHDMI 2.1 FRL Work: https://github.com/mkopec/linux/\nReddit Post: https://www.reddit.com/r/linux_gaming/comments/1r793et/hdmi_21_frl_looking_for_testers/\nXilinux Article: https://www.phoronix.com/news/AMDGPU-HDMI-2.1-But-Xilinx\nAMD Thread: https://gitlab.freedesktop.org/drm/amd/-/issues/1417#note_3335295\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AMD #Linux #HDMI #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.", "HDMI Forum Hates This New Kernel Patch", "fe277025-bfc8-43e4-81a3-5c842f4b9b49", "N53wMB9d4As", 1021, false, "https://www.youtube.com/watch?v=N53wMB9d4As", 4, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022400_HDMI Forum Hates This New Kernel Patch.mp4", false, false, false, 30, [], 98, ~U[2026-02-24 16:30:16Z], ~U[2026-03-01 11:07:03Z], ~U[2026-03-01 11:07:03Z], "You probably know that HDMI 2.1 is a no go on Linux with an AMD GPU, well that's only if you're an HDMI Forum member, who says you have to listen to there rules if you just reverse engineer the support.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHDMI 2.1 FRL Work: https://github.com/mkopec/linux/\nReddit Post: https://www.reddit.com/r/linux_gaming/comments/1r793et/hdmi_21_frl_looking_for_testers/\nXilinux Article: https://www.phoronix.com/news/AMDGPU-HDMI-2.1-But-Xilinx\nAMD Thread: https://gitlab.freedesktop.org/drm/amd/-/issues/1417#note_3335295\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AMD #Linux #HDMI #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.", "HDMI Forum Hates This New Kernel Patch", "N53wMB9d4As", 1021, false, "https://www.youtube.com/watch?v=N53wMB9d4As", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022400_HDMI Forum Hates This New Kernel Patch.mp4", false, 30, ~U[2026-02-24 16:30:16Z]] 05:07:03.029 [debug] QUERY OK source="sources" db=1.9ms queue=0.2ms idle=100.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:07:03.032 [debug] QUERY OK source="media_profiles" db=1.8ms queue=0.3ms idle=42.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] 05:07:03.036 [debug] QUERY OK source="media_items" db=2.4ms queue=0.1ms idle=44.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 [2344980] 05:07:03.036 [debug] Current batch of media processed. Will check again in 1000ms 05:07:03.306 [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/37/12/3712d4e86058f497bd6d751c7ca6cf6c0af3bf50f8031fe1c35543ac64eca787.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. 05:07:03.306 [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" 05:07:03.307 [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" 05:07:03.310 [info] {"args":{"id":1301392},"id":189073,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":8548003,"event":"job:stop","queue_time":7754504,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:07:03.321 [info] {"args":{"id":1301393},"id":189074,"meta":{},"system_time":1772363223320950215,"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"]} 05:07:03.323 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=293.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] 05:07:03.324 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:07:03.326 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=292.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:07:03.328 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms idle=291.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] 05:07:03.331 [debug] QUERY OK source="media_items" db=1.6ms queue=0.1ms idle=18.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 [1301393] 05:07:03.333 [debug] QUERY OK source="media_metadata" db=0.4ms queue=0.1ms idle=12.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" = ?) [1301393] 05:07:03.335 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.1ms idle=10.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] 05:07:03.337 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=10.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:03.338 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=9.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:03.340 [debug] Running yt-dlp command for action: get_downloadable_status 05:07:03.345 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=13.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:03.346 [debug] QUERY OK source="settings" db=0.5ms queue=0.2ms idle=12.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:03.347 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=11.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:03.349 [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/02/5c/025c54762aa1dd1e4d7cf2985b2ed608f15d7ad4dbe0dd1fb04eaf83f9f61bef.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:07:03.508 [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/60/a7/60a78d623ebf195f31f9d8afe6f950858a8c7933249c983c18c11388121becaf.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. 05:07:03.508 [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" 05:07:03.509 [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" 05:07:03.511 [info] {"args":{"id":1301347},"id":189072,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":8884008,"event":"job:stop","queue_time":7619502,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:07:03.523 [info] {"args":{"id":1301394},"id":189075,"meta":{},"system_time":1772363223523491918,"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"]} 05:07:03.526 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms 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" = ?) [1301394] 05:07:03.526 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:07:03.529 [debug] QUERY OK source="sources" db=1.5ms queue=0.1ms idle=180.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] 05:07:03.532 [debug] QUERY OK source="media_profiles" db=1.5ms queue=0.2ms idle=182.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] 05:07:03.536 [debug] QUERY OK source="media_items" db=2.2ms queue=0.1ms idle=22.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] 05:07:03.539 [debug] QUERY OK source="media_metadata" db=0.5ms queue=0.1ms idle=15.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] 05:07:03.541 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.1ms idle=14.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] 05:07:03.544 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=14.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:03.545 [debug] QUERY OK source="settings" db=0.7ms queue=0.2ms idle=12.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:03.547 [debug] Running yt-dlp command for action: get_downloadable_status 05:07:03.551 [debug] QUERY OK source="settings" db=1.0ms queue=0.1ms idle=14.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:03.553 [debug] QUERY OK source="settings" db=0.9ms queue=0.2ms idle=12.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:03.555 [debug] QUERY OK source="settings" db=0.8ms queue=0.1ms idle=12.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:03.556 [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/a6/a7/a6a75310443b7622deb0421e573f6099d81d3756d01d906a617223a3871a88b4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:07:04.037 [debug] Current batch of media processed. Will check again in 1000ms 05:07:05.038 [debug] Current batch of media processed. Will check again in 1000ms 05:07:06.039 [debug] Current batch of media processed. Will check again in 1000ms 05:07:07.041 [debug] Current batch of media processed. Will check again in 1000ms 05:07:08.043 [debug] Current batch of media processed. Will check again in 1000ms 05:07:09.044 [debug] Current batch of media processed. Will check again in 1000ms 05:07:09.975 [info] {"source":"oban","duration":68018,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:07:10.045 [debug] Current batch of media processed. Will check again in 1000ms 05:07:11.046 [debug] Current batch of media processed. Will check again in 1000ms 05:07:11.522 [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/02/5c/025c54762aa1dd1e4d7cf2985b2ed608f15d7ad4dbe0dd1fb04eaf83f9f61bef.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. 05:07:11.522 [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" 05:07:11.523 [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" 05:07:11.525 [info] {"args":{"id":1301393},"id":189074,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":8202524,"event":"job:stop","queue_time":16317442,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:07:11.537 [info] {"args":{"id":1301395},"id":189076,"meta":{},"system_time":1772363231536499827,"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"]} 05:07:11.539 [debug] QUERY OK source="media_items" db=1.4ms queue=0.2ms idle=22.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] 05:07:11.540 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:07:11.544 [debug] QUERY OK source="sources" db=2.8ms queue=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" = ?) [52] 05:07:11.546 [debug] QUERY OK source="media_profiles" db=1.2ms queue=0.2ms idle=30.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] 05:07:11.550 [debug] QUERY OK source="media_items" db=2.1ms queue=0.1ms idle=22.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 [1301395] 05:07:11.553 [debug] QUERY OK source="media_metadata" db=0.5ms queue=0.1ms idle=16.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] 05:07:11.555 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.3ms idle=15.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] 05:07:11.559 [debug] QUERY OK source="settings" db=1.0ms queue=0.3ms idle=13.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:11.561 [debug] QUERY OK source="settings" db=0.7ms queue=0.3ms idle=13.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:11.563 [debug] Running yt-dlp command for action: get_downloadable_status 05:07:11.567 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=16.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:11.568 [debug] QUERY OK source="settings" db=1.0ms queue=0.3ms idle=13.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:11.571 [debug] QUERY OK source="settings" db=1.1ms queue=0.2ms idle=14.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:11.572 [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/6e/45/6e45960f75378a35d75f8f38b815b5e0efbdd1730ad6e30c361eb33d651fa5bb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:07:11.741 [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/a6/a7/a6a75310443b7622deb0421e573f6099d81d3756d01d906a617223a3871a88b4.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. 05:07:11.742 [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" 05:07:11.742 [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" 05:07:11.745 [info] {"args":{"id":1301394},"id":189075,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":8219632,"event":"job:stop","queue_time":16518429,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:07:11.755 [info] {"args":{"id":1301397},"id":189077,"meta":{},"system_time":1772363231754640540,"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"]} 05:07:11.756 [debug] QUERY OK source="media_items" db=0.8ms queue=0.2ms idle=188.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" = ?) [1301397] 05:07:11.757 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:07:11.759 [debug] QUERY OK source="sources" db=1.0ms queue=0.2ms idle=188.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] 05:07:11.761 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.2ms idle=188.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] 05:07:11.763 [debug] QUERY OK source="media_items" db=1.5ms queue=0.1ms idle=17.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] 05:07:11.767 [debug] QUERY OK source="media_metadata" db=0.5ms idle=11.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] 05:07:11.768 [debug] QUERY OK source="media_profiles" db=0.7ms queue=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] 05:07:11.770 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=10.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:11.771 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=9.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:11.772 [debug] Running yt-dlp command for action: get_downloadable_status 05:07:11.775 [debug] QUERY OK source="settings" db=0.7ms idle=11.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:11.777 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms 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 [] 05:07:11.778 [debug] QUERY OK source="settings" db=0.6ms queue=0.2ms 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 [] 05:07:11.779 [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/09/6c/096c21a64aa692f8696d6f30e0942abca89661014c9177877bc954784ffa4a06.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:07:12.049 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "If you're on Linux you've probably written at least a couple of Bash shell scripts, but what if there was another way to do it, a node based way where you didn't have to write any code by hand.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVish Github: https://github.com/Lluciocc/Vish\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Bash #Zsh #Programming #shellscripting \n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 867, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022300_The Most Unique Way To Make Bash Shell Scripts.mp4", "id" => "5SLDNN5DP_o", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5SLDNN5DP_o", "playlist_index" => 5, "timestamp" => 1771864202, "title" => "The Most Unique Way To Make Bash Shell Scripts", "upload_date" => "20260223"} 05:07:12.051 [debug] QUERY OK source="sources" db=1.4ms queue=0.2ms idle=278.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] 05:07:12.053 [debug] QUERY OK source="sources" db=0.8ms queue=0.2ms idle=276.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:07:12.087 [debug] QUERY OK source="media_items" db=32.2ms queue=0.1ms idle=277.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-23 16:30:02Z], 30] 05:07:12.100 [debug] QUERY OK source="media_items" db=9.3ms queue=0.1ms 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" ["If you're on Linux you've probably written at least a couple of Bash shell scripts, but what if there was another way to do it, a node based way where you didn't have to write any code by hand.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVish Github: https://github.com/Lluciocc/Vish\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Bash #Zsh #Programming #shellscripting \n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Most Unique Way To Make Bash Shell Scripts", "380338cd-2a2c-465e-9c74-ba7a86998e4a", "5SLDNN5DP_o", 867, false, "https://www.youtube.com/watch?v=5SLDNN5DP_o", 5, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022300_The Most Unique Way To Make Bash Shell Scripts.mp4", false, false, false, 30, [], 98, ~U[2026-02-23 16:30:02Z], ~U[2026-03-01 11:07:12Z], ~U[2026-03-01 11:07:12Z], "If you're on Linux you've probably written at least a couple of Bash shell scripts, but what if there was another way to do it, a node based way where you didn't have to write any code by hand.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVish Github: https://github.com/Lluciocc/Vish\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Bash #Zsh #Programming #shellscripting \n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Most Unique Way To Make Bash Shell Scripts", "5SLDNN5DP_o", 867, false, "https://www.youtube.com/watch?v=5SLDNN5DP_o", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022300_The Most Unique Way To Make Bash Shell Scripts.mp4", false, 30, ~U[2026-02-23 16:30:02Z]] 05:07:12.104 [debug] QUERY OK source="sources" db=1.9ms queue=0.5ms idle=114.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:07:12.106 [debug] QUERY OK source="media_profiles" db=1.3ms queue=0.3ms idle=53.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] 05:07:12.110 [debug] QUERY OK source="media_items" db=1.7ms queue=0.1ms idle=54.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 [2337310] 05:07:12.110 [debug] Current batch of media processed. Will check again in 1000ms 05:07:13.111 [debug] Current batch of media processed. Will check again in 1000ms 05:07:14.113 [debug] Current batch of media processed. Will check again in 1000ms 05:07:15.114 [debug] Current batch of media processed. Will check again in 1000ms 05:07:16.115 [debug] Current batch of media processed. Will check again in 1000ms 05:07:17.116 [debug] Current batch of media processed. Will check again in 1000ms 05:07:18.117 [debug] Current batch of media processed. Will check again in 1000ms 05:07:19.118 [debug] Current batch of media processed. Will check again in 1000ms 05:07:19.534 [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/6e/45/6e45960f75378a35d75f8f38b815b5e0efbdd1730ad6e30c361eb33d651fa5bb.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. 05:07:19.535 [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" 05:07:19.535 [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" 05:07:19.537 [info] {"args":{"id":1301395},"id":189076,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7999119,"event":"job:stop","queue_time":24532471,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:07:19.548 [info] {"args":{"id":1301398},"id":189078,"meta":{},"system_time":1772363239548113918,"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"]} 05:07:19.550 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=34.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] 05:07:19.550 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:07:19.552 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=36.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:07:19.554 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.2ms idle=38.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] 05:07:19.556 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=18.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 [1301398] 05:07:19.559 [debug] QUERY OK source="media_metadata" db=0.3ms idle=10.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" = ?) [1301398] 05:07:19.560 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.2ms 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] 05:07:19.562 [debug] QUERY OK source="settings" db=0.4ms queue=0.2ms 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 [] 05:07:19.563 [debug] QUERY OK source="settings" db=0.3ms queue=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 [] 05:07:19.564 [debug] Running yt-dlp command for action: get_downloadable_status 05:07:19.566 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=9.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:19.567 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms 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 [] 05:07:19.569 [debug] QUERY OK source="settings" db=0.8ms queue=0.1ms idle=7.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:19.569 [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/63/f9/63f9c0cce9e17ed28647bbe2447b739e98112f8c98b88ecdab3d44fbdb797f6e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:07:19.803 [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/09/6c/096c21a64aa692f8696d6f30e0942abca89661014c9177877bc954784ffa4a06.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. 05:07:19.803 [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" 05:07:19.804 [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" 05:07:19.806 [info] {"args":{"id":1301397},"id":189077,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":8049725,"event":"job:stop","queue_time":24751443,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:07:19.816 [info] {"args":{"id":1301399},"id":189079,"meta":{},"system_time":1772363239815644660,"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"]} 05:07:19.818 [debug] QUERY OK source="media_items" db=1.2ms idle=249.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] 05:07:19.818 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:07:19.820 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms idle=251.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:07:19.822 [debug] QUERY OK source="media_profiles" db=1.1ms queue=0.1ms idle=251.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] 05:07:19.824 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=17.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] 05:07:19.828 [debug] QUERY OK source="media_metadata" db=0.4ms queue=0.1ms idle=12.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] 05:07:19.830 [debug] QUERY OK source="media_profiles" db=1.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] 05:07:19.832 [debug] QUERY OK source="settings" db=0.7ms queue=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 [] 05:07:19.833 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=10.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:19.835 [debug] Running yt-dlp command for action: get_downloadable_status 05:07:19.838 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=12.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:19.839 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=10.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:19.840 [debug] QUERY OK source="settings" db=0.5ms queue=0.2ms idle=9.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:19.841 [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/e2/36/e236b189569c1e34a336d1baea5aaf208c3d8eb2eaa249de5f2225ad7b9ca576.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:07:20.120 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "You've probably heard that screensavers aren't possible on Wayland but that's not actually the case, not only are they possible but there are options available to use like XScreensaver even on Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWayland Screensaver: https://www.jwz.org/blog/2023/09/wayland-and-screen-savers/\nXscreensaver 6.11: https://www.jwz.org/blog/2025/07/xscreensaver-6-11/\nXscreensaver 6.12: https://www.jwz.org/blog/2025/07/xscreensaver-6-12/\nLinux Mint: https://blog.linuxmint.com/?p=4991\nKDE: https://invent.kde.org/plasma/kscreenlocker/-/merge_requests/207\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #FOSS #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 862, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022200_Screensavers Are Coming To Wayland.mp4", "id" => "i6qMTnHQ9ow", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=i6qMTnHQ9ow", "playlist_index" => 6, "timestamp" => 1771777818, "title" => "Screensavers Are Coming To Wayland", "upload_date" => "20260222"} 05:07:20.122 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=287.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] 05:07:20.124 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=285.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] 05:07:20.148 [debug] QUERY OK source="media_items" db=22.9ms queue=0.1ms idle=285.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-22 16:30:18Z], 30] 05:07:20.156 [debug] QUERY OK source="media_items" db=5.8ms queue=0.1ms idle=308.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've probably heard that screensavers aren't possible on Wayland but that's not actually the case, not only are they possible but there are options available to use like XScreensaver even on Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWayland Screensaver: https://www.jwz.org/blog/2023/09/wayland-and-screen-savers/\nXscreensaver 6.11: https://www.jwz.org/blog/2025/07/xscreensaver-6-11/\nXscreensaver 6.12: https://www.jwz.org/blog/2025/07/xscreensaver-6-12/\nLinux Mint: https://blog.linuxmint.com/?p=4991\nKDE: https://invent.kde.org/plasma/kscreenlocker/-/merge_requests/207\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #FOSS #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Screensavers Are Coming To Wayland", "78b8dccd-889e-45cf-9ca0-361d2991d650", "i6qMTnHQ9ow", 862, false, "https://www.youtube.com/watch?v=i6qMTnHQ9ow", 6, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022200_Screensavers Are Coming To Wayland.mp4", false, false, false, 30, [], 98, ~U[2026-02-22 16:30:18Z], ~U[2026-03-01 11:07:20Z], ~U[2026-03-01 11:07:20Z], "You've probably heard that screensavers aren't possible on Wayland but that's not actually the case, not only are they possible but there are options available to use like XScreensaver even on Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWayland Screensaver: https://www.jwz.org/blog/2023/09/wayland-and-screen-savers/\nXscreensaver 6.11: https://www.jwz.org/blog/2025/07/xscreensaver-6-11/\nXscreensaver 6.12: https://www.jwz.org/blog/2025/07/xscreensaver-6-12/\nLinux Mint: https://blog.linuxmint.com/?p=4991\nKDE: https://invent.kde.org/plasma/kscreenlocker/-/merge_requests/207\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #FOSS #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Screensavers Are Coming To Wayland", "i6qMTnHQ9ow", 862, false, "https://www.youtube.com/watch?v=i6qMTnHQ9ow", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022200_Screensavers Are Coming To Wayland.mp4", false, 30, ~U[2026-02-22 16:30:18Z]] 05:07:20.157 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=124.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:07:20.159 [debug] QUERY OK source="media_profiles" db=1.3ms queue=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] 05:07:20.162 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=36.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 [2329425] 05:07:20.162 [debug] Current batch of media processed. Will check again in 1000ms 05:07:21.163 [debug] Current batch of media processed. Will check again in 1000ms 05:07:22.165 [debug] Current batch of media processed. Will check again in 1000ms 05:07:23.166 [debug] Current batch of media processed. Will check again in 1000ms 05:07:24.167 [debug] Current batch of media processed. Will check again in 1000ms 05:07:25.168 [debug] Current batch of media processed. Will check again in 1000ms 05:07:25.812 [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/63/f9/63f9c0cce9e17ed28647bbe2447b739e98112f8c98b88ecdab3d44fbdb797f6e.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. 05:07:25.812 [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" 05:07:25.813 [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" 05:07:25.815 [info] {"args":{"id":1301398},"id":189078,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":6265356,"event":"job:stop","queue_time":32544437,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:07:25.827 [info] {"args":{"id":1301400},"id":189080,"meta":{},"system_time":1772363245826940767,"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"]} 05:07:25.830 [debug] QUERY OK source="media_items" db=1.6ms queue=0.1ms idle=312.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] 05:07:25.831 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:07:25.833 [debug] QUERY OK source="sources" db=1.5ms queue=0.1ms idle=316.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:07:25.836 [debug] QUERY OK source="media_profiles" db=1.6ms queue=0.3ms idle=319.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] 05:07:25.840 [debug] QUERY OK source="media_items" db=2.2ms queue=0.2ms idle=22.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] 05:07:25.846 [debug] QUERY OK source="media_metadata" db=0.8ms queue=0.2ms idle=18.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" = ?) [1301400] 05:07:25.848 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.2ms 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] 05:07:25.850 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=16.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:25.852 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=14.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:25.853 [debug] Running yt-dlp command for action: get_downloadable_status 05:07:25.858 [debug] QUERY OK source="settings" db=0.8ms queue=0.1ms idle=16.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:25.859 [debug] QUERY OK source="settings" db=0.8ms queue=0.2ms idle=12.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:25.861 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=11.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:07:25.862 [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/b4/07/b40700e3ff60d857fe35160a45326302e4a53db78d3f9aeb7c103e58eb345c3f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:07:25.975 [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/e2/36/e236b189569c1e34a336d1baea5aaf208c3d8eb2eaa249de5f2225ad7b9ca576.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. 05:07:25.976 [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" 05:07:25.977 [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" 05:07:25.979 [info] {"args":{"id":1301399},"id":189079,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":6161785,"event":"job:stop","queue_time":32812433,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:07:26.171 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Nowadays the default look of KDE Plasma is called Breeze but before that during the KDE 4 era we had both Oxygen and Air and this developer is trying to bring it back.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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 Post: https://filipfila.wordpress.com/2026/02/08/beating-an-old-but-not-dead-horse-what-to-do-with-the-oxygen-and-air-themes/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 851, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022100_Bringing KDE 4 Oxygen Back To Modern KDE.mp4", "id" => "VplYzVNVncg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=VplYzVNVncg", "playlist_index" => 7, "timestamp" => 1771691412, "title" => "Bringing KDE 4 Oxygen Back To Modern KDE", "upload_date" => "20260221"} 05:07:26.174 [debug] QUERY OK source="sources" db=1.6ms queue=0.1ms idle=313.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:07:26.177 [debug] QUERY OK source="sources" db=1.7ms queue=0.2ms idle=314.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:07:26.216 [debug] QUERY OK source="media_items" db=37.2ms queue=0.2ms idle=199.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-21 16:30:12Z], 30] 05:07:26.255 [debug] QUERY OK source="media_items" db=33.8ms queue=0.1ms idle=227.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" ["Nowadays the default look of KDE Plasma is called Breeze but before that during the KDE 4 era we had both Oxygen and Air and this developer is trying to bring it back.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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 Post: https://filipfila.wordpress.com/2026/02/08/beating-an-old-but-not-dead-horse-what-to-do-with-the-oxygen-and-air-themes/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bringing KDE 4 Oxygen Back To Modern KDE", "e772f6ad-f83a-44b8-8288-676a824cb7bb", "VplYzVNVncg", 851, false, "https://www.youtube.com/watch?v=VplYzVNVncg", 7, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022100_Bringing KDE 4 Oxygen Back To Modern KDE.mp4", false, false, false, 30, [], 98, ~U[2026-02-21 16:30:12Z], ~U[2026-03-01 11:07:26Z], ~U[2026-03-01 11:07:26Z], "Nowadays the default look of KDE Plasma is called Breeze but before that during the KDE 4 era we had both Oxygen and Air and this developer is trying to bring it back.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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 Post: https://filipfila.wordpress.com/2026/02/08/beating-an-old-but-not-dead-horse-what-to-do-with-the-oxygen-and-air-themes/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bringing KDE 4 Oxygen Back To Modern KDE", "VplYzVNVncg", 851, false, "https://www.youtube.com/watch?v=VplYzVNVncg", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022100_Bringing KDE 4 Oxygen Back To Modern KDE.mp4", false, 30, ~U[2026-02-21 16:30:12Z]] 05:07:26.258 [debug] QUERY OK source="sources" db=1.9ms queue=0.2ms idle=191.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:07:26.262 [debug] QUERY OK source="media_profiles" db=2.4ms queue=0.2ms idle=84.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:07:26.267 [debug] QUERY OK source="media_items" db=2.9ms queue=0.3ms idle=86.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 [2321562] 05:07:26.268 [debug] Current batch of media processed. Will check again in 1000ms 05:07:27.270 [debug] Current batch of media processed. Will check again in 1000ms 05:07:28.271 [debug] Current batch of media processed. Will check again in 1000ms 05:07:29.272 [debug] Current batch of media processed. Will check again in 1000ms 05:07:30.273 [debug] Current batch of media processed. Will check again in 1000ms 05:07:31.274 [debug] Current batch of media processed. Will check again in 1000ms 05:07:32.275 [debug] Current batch of media processed. Will check again in 1000ms 05:07:32.722 [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/b4/07/b40700e3ff60d857fe35160a45326302e4a53db78d3f9aeb7c103e58eb345c3f.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. 05:07:32.722 [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" 05:07:32.723 [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" 05:07:32.724 [info] {"args":{"id":1301400},"id":189080,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":6896359,"event":"job:stop","queue_time":38821505,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:07:33.277 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The window manager space on Wayland has completely changed over the past few years, there was a time when Sway was the only good choice but now you have both Hyprland a dynamic tiler and Niri a scroller and this has changed the equation for what you can do on Wayland.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHyprland: https://hypr.land/\nNiri: https://github.com/niri-wm/niri\nKarousel: https://github.com/peterfajdiga/karousel\nRiver Repo: https://codeberg.org/river/river\nHyprland Wiki: https://wiki.hypr.land/\nNiri Wiki: https://github.com/niri-wm/niri/wiki/Configuration:-Introduction\nQuickshell: https://quickshell.org/\nMaterial Shell: https://github.com/AvengeMedia/DankMaterialShell\nNoctalia: https://github.com/noctalia-dev/noctalia-shell\nCaelestia: https://github.com/caelestia-dots/shell\nTheo Comment: https://x.com/theo/status/2018422881705984483\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Niri #Hyprland #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 1078, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021900_Hyprland And Niri Changed Wayland Forever.mp4", "id" => "jeY7xQ13v6I", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=jeY7xQ13v6I", "playlist_index" => 8, "timestamp" => 1771518621, "title" => "Hyprland And Niri Changed Wayland Forever", "upload_date" => "20260219"} 05:07:33.278 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=1762.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:07:33.279 [debug] QUERY OK source="sources" db=0.6ms idle=1187.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] 05:07:33.293 [debug] QUERY OK source="media_items" db=13.5ms idle=555.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-19 16:30:21Z], 30] 05:07:33.299 [debug] QUERY OK source="media_items" db=4.5ms idle=562.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 window manager space on Wayland has completely changed over the past few years, there was a time when Sway was the only good choice but now you have both Hyprland a dynamic tiler and Niri a scroller and this has changed the equation for what you can do on Wayland.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHyprland: https://hypr.land/\nNiri: https://github.com/niri-wm/niri\nKarousel: https://github.com/peterfajdiga/karousel\nRiver Repo: https://codeberg.org/river/river\nHyprland Wiki: https://wiki.hypr.land/\nNiri Wiki: https://github.com/niri-wm/niri/wiki/Configuration:-Introduction\nQuickshell: https://quickshell.org/\nMaterial Shell: https://github.com/AvengeMedia/DankMaterialShell\nNoctalia: https://github.com/noctalia-dev/noctalia-shell\nCaelestia: https://github.com/caelestia-dots/shell\nTheo Comment: https://x.com/theo/status/2018422881705984483\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Niri #Hyprland #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Hyprland And Niri Changed Wayland Forever", "5eecac58-2555-4450-971b-f58f6842a3ea", "jeY7xQ13v6I", 1078, false, "https://www.youtube.com/watch?v=jeY7xQ13v6I", 8, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021900_Hyprland And Niri Changed Wayland Forever.mp4", false, false, false, 30, [], 98, ~U[2026-02-19 16:30:21Z], ~U[2026-03-01 11:07:33Z], ~U[2026-03-01 11:07:33Z], "The window manager space on Wayland has completely changed over the past few years, there was a time when Sway was the only good choice but now you have both Hyprland a dynamic tiler and Niri a scroller and this has changed the equation for what you can do on Wayland.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHyprland: https://hypr.land/\nNiri: https://github.com/niri-wm/niri\nKarousel: https://github.com/peterfajdiga/karousel\nRiver Repo: https://codeberg.org/river/river\nHyprland Wiki: https://wiki.hypr.land/\nNiri Wiki: https://github.com/niri-wm/niri/wiki/Configuration:-Introduction\nQuickshell: https://quickshell.org/\nMaterial Shell: https://github.com/AvengeMedia/DankMaterialShell\nNoctalia: https://github.com/noctalia-dev/noctalia-shell\nCaelestia: https://github.com/caelestia-dots/shell\nTheo Comment: https://x.com/theo/status/2018422881705984483\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Niri #Hyprland #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Hyprland And Niri Changed Wayland Forever", "jeY7xQ13v6I", 1078, false, "https://www.youtube.com/watch?v=jeY7xQ13v6I", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021900_Hyprland And Niri Changed Wayland Forever.mp4", false, 30, ~U[2026-02-19 16:30:21Z]] 05:07:33.301 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=206.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:07:33.302 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.2ms idle=22.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] 05:07:33.303 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=23.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 [2305791] 05:07:33.303 [debug] Current batch of media processed. Will check again in 1000ms 05:07:34.304 [debug] Current batch of media processed. Will check again in 1000ms 05:07:35.305 [debug] Current batch of media processed. Will check again in 1000ms 05:07:36.306 [debug] Current batch of media processed. Will check again in 1000ms 05:07:37.308 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A few weeks back KDE announced that the new Plasma Login Manager was going to require the use of Systemd and thus wouldn't work on FreeBSD or the other BSDs and whilst this is true it's only about the Login Manager not the rest of KDE Plasma\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\n9to5Linux: https://9to5linux.com/kaos-linux-drops-kde-plasma-after-12-years-for-niri-noctalia-to-escape-systemd\nLinuxiac: https://linuxiac.com/kaos-2026-02-debuts-niri-wayland-desktop/\nXDA Developers: https://www.xda-developers.com/linux-distro-dropped-kde-plasma-support-tries-to-escape-systemd/\nKaOS News Post: https://kaosx.us/news/2026/kaos02/\nReddit Post: https://www.reddit.com/r/kde/comments/1r68jmi/a_quick_antifud_faq_to_debunk_the_kde_is_forcing/\nFreeBSd Wayland: https://x61.sh/log/2024/05/27052024192206-sway_openbsd.html\nNetBSD 2020: https://blog.netbsd.org/tnf/entry/wayland_on_netbsd_trials_and\nFreeBSD and NetBSD Now: https://www.youtube.com/watch?v=oo_8gnWQ4xo\nHikari: http://hikari.acmelabs.space/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 843, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021800_KDE Plasma Is Not Forcing Systemd Use.mp4", "id" => "0l29JZxzong", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=0l29JZxzong", "playlist_index" => 9, "timestamp" => 1771432200, "title" => "KDE Plasma Is Not Forcing Systemd Use", "upload_date" => "20260218"} 05:07:37.309 [debug] QUERY OK source="sources" db=0.6ms idle=793.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:07:37.310 [debug] QUERY OK source="sources" db=0.4ms idle=794.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:07:37.323 [debug] QUERY OK source="media_items" db=12.6ms idle=795.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-18 16:30:00Z], 30] 05:07:37.330 [debug] QUERY OK source="media_items" db=5.4ms queue=0.1ms idle=809.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 few weeks back KDE announced that the new Plasma Login Manager was going to require the use of Systemd and thus wouldn't work on FreeBSD or the other BSDs and whilst this is true it's only about the Login Manager not the rest of KDE Plasma\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\n9to5Linux: https://9to5linux.com/kaos-linux-drops-kde-plasma-after-12-years-for-niri-noctalia-to-escape-systemd\nLinuxiac: https://linuxiac.com/kaos-2026-02-debuts-niri-wayland-desktop/\nXDA Developers: https://www.xda-developers.com/linux-distro-dropped-kde-plasma-support-tries-to-escape-systemd/\nKaOS News Post: https://kaosx.us/news/2026/kaos02/\nReddit Post: https://www.reddit.com/r/kde/comments/1r68jmi/a_quick_antifud_faq_to_debunk_the_kde_is_forcing/\nFreeBSd Wayland: https://x61.sh/log/2024/05/27052024192206-sway_openbsd.html\nNetBSD 2020: https://blog.netbsd.org/tnf/entry/wayland_on_netbsd_trials_and\nFreeBSD and NetBSD Now: https://www.youtube.com/watch?v=oo_8gnWQ4xo\nHikari: http://hikari.acmelabs.space/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Is Not Forcing Systemd Use", "8e37fba8-8bbd-46c9-9381-2bb64d542554", "0l29JZxzong", 843, false, "https://www.youtube.com/watch?v=0l29JZxzong", 9, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021800_KDE Plasma Is Not Forcing Systemd Use.mp4", false, false, false, 30, [], 98, ~U[2026-02-18 16:30:00Z], ~U[2026-03-01 11:07:37Z], ~U[2026-03-01 11:07:37Z], "A few weeks back KDE announced that the new Plasma Login Manager was going to require the use of Systemd and thus wouldn't work on FreeBSD or the other BSDs and whilst this is true it's only about the Login Manager not the rest of KDE Plasma\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\n9to5Linux: https://9to5linux.com/kaos-linux-drops-kde-plasma-after-12-years-for-niri-noctalia-to-escape-systemd\nLinuxiac: https://linuxiac.com/kaos-2026-02-debuts-niri-wayland-desktop/\nXDA Developers: https://www.xda-developers.com/linux-distro-dropped-kde-plasma-support-tries-to-escape-systemd/\nKaOS News Post: https://kaosx.us/news/2026/kaos02/\nReddit Post: https://www.reddit.com/r/kde/comments/1r68jmi/a_quick_antifud_faq_to_debunk_the_kde_is_forcing/\nFreeBSd Wayland: https://x61.sh/log/2024/05/27052024192206-sway_openbsd.html\nNetBSD 2020: https://blog.netbsd.org/tnf/entry/wayland_on_netbsd_trials_and\nFreeBSD and NetBSD Now: https://www.youtube.com/watch?v=oo_8gnWQ4xo\nHikari: http://hikari.acmelabs.space/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Is Not Forcing Systemd Use", "0l29JZxzong", 843, false, "https://www.youtube.com/watch?v=0l29JZxzong", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021800_KDE Plasma Is Not Forcing Systemd Use.mp4", false, 30, ~U[2026-02-18 16:30:00Z]] 05:07:37.331 [debug] QUERY OK source="sources" db=0.6ms queue=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:07:37.332 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=22.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] 05:07:37.333 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=22.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 [2298089] 05:07:37.333 [debug] Current batch of media processed. Will check again in 1000ms 05:07:38.334 [debug] Current batch of media processed. Will check again in 1000ms 05:07:39.335 [debug] Current batch of media processed. Will check again in 1000ms 05:07:39.998 [info] {"source":"oban","duration":21907,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 05:07:40.336 [debug] Current batch of media processed. Will check again in 1000ms 05:07:41.337 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "What if I told you that an AI agent just tried to ruin the career of a developer on Matplotlib who was following Matplotlib policy to not allow AI agents, writing a hilarious blog post on the situation but it gets even better from there\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nIssue: https://github.com/matplotlib/matplotlib/issues/31130\nMerge Request: https://github.com/matplotlib/matplotlib/pull/31132\nOpenClaw Joins OpenAI: https://www.itnews.com.au/news/openclaw-founder-joins-openai-623662\nAI Blog Post 1: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-gatekeeping-in-open-source-the-scott-shambaugh-story.html\nAI Blog Post 2: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-matplotlib-truce-and-lessons.html\nScott Blog Post 1: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me/\nArs Technica Article: https://web.archive.org/web/20260213194851/https://arstechnica.com/ai/2026/02/after-a-routine-code-rejection-an-ai-agent-published-a-hit-piece-on-someone-by-name/\nScott Blog Post 2: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me-part-2/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#AI #OpenSource #Developer #SoftwareDeveloper #Programmer\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 1382, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021700_When AI Agents Try To Ruin Your Career.mp4", "id" => "fMoUE59H9bs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=fMoUE59H9bs", "playlist_index" => 10, "timestamp" => 1771345828, "title" => "When AI Agents Try To Ruin Your Career", "upload_date" => "20260217"} 05:07:41.338 [debug] QUERY OK source="sources" db=0.4ms 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 (?)) [30] 05:07:41.339 [debug] QUERY OK source="sources" db=0.4ms idle=824.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:07:41.350 [debug] QUERY OK source="media_items" db=10.1ms idle=825.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-17 16:30:28Z], 30] 05:07:41.354 [debug] QUERY OK source="media_items" db=3.4ms idle=835.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" ["What if I told you that an AI agent just tried to ruin the career of a developer on Matplotlib who was following Matplotlib policy to not allow AI agents, writing a hilarious blog post on the situation but it gets even better from there\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nIssue: https://github.com/matplotlib/matplotlib/issues/31130\nMerge Request: https://github.com/matplotlib/matplotlib/pull/31132\nOpenClaw Joins OpenAI: https://www.itnews.com.au/news/openclaw-founder-joins-openai-623662\nAI Blog Post 1: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-gatekeeping-in-open-source-the-scott-shambaugh-story.html\nAI Blog Post 2: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-matplotlib-truce-and-lessons.html\nScott Blog Post 1: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me/\nArs Technica Article: https://web.archive.org/web/20260213194851/https://arstechnica.com/ai/2026/02/after-a-routine-code-rejection-an-ai-agent-published-a-hit-piece-on-someone-by-name/\nScott Blog Post 2: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me-part-2/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#AI #OpenSource #Developer #SoftwareDeveloper #Programmer\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "When AI Agents Try To Ruin Your Career", "f48c81ca-f6da-4e90-a177-828a85682191", "fMoUE59H9bs", 1382, false, "https://www.youtube.com/watch?v=fMoUE59H9bs", 10, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021700_When AI Agents Try To Ruin Your Career.mp4", false, false, false, 30, [], 98, ~U[2026-02-17 16:30:28Z], ~U[2026-03-01 11:07:41Z], ~U[2026-03-01 11:07:41Z], "What if I told you that an AI agent just tried to ruin the career of a developer on Matplotlib who was following Matplotlib policy to not allow AI agents, writing a hilarious blog post on the situation but it gets even better from there\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nIssue: https://github.com/matplotlib/matplotlib/issues/31130\nMerge Request: https://github.com/matplotlib/matplotlib/pull/31132\nOpenClaw Joins OpenAI: https://www.itnews.com.au/news/openclaw-founder-joins-openai-623662\nAI Blog Post 1: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-gatekeeping-in-open-source-the-scott-shambaugh-story.html\nAI Blog Post 2: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-matplotlib-truce-and-lessons.html\nScott Blog Post 1: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me/\nArs Technica Article: https://web.archive.org/web/20260213194851/https://arstechnica.com/ai/2026/02/after-a-routine-code-rejection-an-ai-agent-published-a-hit-piece-on-someone-by-name/\nScott Blog Post 2: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me-part-2/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#AI #OpenSource #Developer #SoftwareDeveloper #Programmer\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "When AI Agents Try To Ruin Your Career", "fMoUE59H9bs", 1382, false, "https://www.youtube.com/watch?v=fMoUE59H9bs", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021700_When AI Agents Try To Ruin Your Career.mp4", false, 30, ~U[2026-02-17 16:30:28Z]] 05:07:41.356 [debug] QUERY OK source="sources" db=1.1ms idle=240.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:07:41.357 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=17.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] 05:07:41.358 [debug] QUERY OK source="media_items" db=0.6ms idle=18.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 [2290238] 05:07:41.358 [debug] Current batch of media processed. Will check again in 1000ms 05:07:42.359 [debug] Current batch of media processed. Will check again in 1000ms 05:07:43.360 [debug] Current batch of media processed. Will check again in 1000ms 05:07:44.361 [debug] Current batch of media processed. Will check again in 1000ms 05:07:45.362 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "You probably know that you should be safe whilst using the AUR on Arch Linux but how does one go about doing that.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nAUR Post: https://bertptrs.nl/2026/01/30/how-to-review-an-aur-package.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#Linux #ArchLinux #FOSS #OpenSource #LinuxDistro\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 1155, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021600_Staying Safe On Arch Linux.mp4", "id" => "bTKATeeQlvM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=bTKATeeQlvM", "playlist_index" => 11, "timestamp" => 1771259411, "title" => "Staying Safe On Arch Linux", "upload_date" => "20260216"} 05:07:45.363 [debug] QUERY OK source="sources" db=0.5ms idle=848.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:07:45.364 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=849.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:07:45.375 [debug] QUERY OK source="media_items" db=10.5ms idle=850.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-16 16:30:11Z], 30] 05:07:45.379 [debug] QUERY OK source="media_items" db=2.7ms idle=861.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 probably know that you should be safe whilst using the AUR on Arch Linux but how does one go about doing that.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nAUR Post: https://bertptrs.nl/2026/01/30/how-to-review-an-aur-package.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#Linux #ArchLinux #FOSS #OpenSource #LinuxDistro\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Staying Safe On Arch Linux", "9fc87fca-e295-4d27-a5f0-ca80a3eab332", "bTKATeeQlvM", 1155, false, "https://www.youtube.com/watch?v=bTKATeeQlvM", 11, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021600_Staying Safe On Arch Linux.mp4", false, false, false, 30, [], 98, ~U[2026-02-16 16:30:11Z], ~U[2026-03-01 11:07:45Z], ~U[2026-03-01 11:07:45Z], "You probably know that you should be safe whilst using the AUR on Arch Linux but how does one go about doing that.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nAUR Post: https://bertptrs.nl/2026/01/30/how-to-review-an-aur-package.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#Linux #ArchLinux #FOSS #OpenSource #LinuxDistro\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Staying Safe On Arch Linux", "bTKATeeQlvM", 1155, false, "https://www.youtube.com/watch?v=bTKATeeQlvM", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021600_Staying Safe On Arch Linux.mp4", false, 30, ~U[2026-02-16 16:30:11Z]] 05:07:45.380 [debug] QUERY OK source="sources" db=0.4ms idle=253.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] 05:07:45.381 [debug] QUERY OK source="media_profiles" db=0.5ms idle=16.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] 05:07:45.382 [debug] QUERY OK source="media_items" db=0.6ms idle=16.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 [2282382] 05:07:45.382 [debug] Current batch of media processed. Will check again in 1000ms 05:07:46.382 [debug] Current batch of media processed. Will check again in 1000ms 05:07:47.383 [debug] Current batch of media processed. Will check again in 1000ms 05:07:48.384 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Debian is a very important project in the world of Linux but they're going through a bit of a crisis of being Debian, having old systems that people don't want to get involved in and a slow drain of maintainers\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nDebian Linux Bugs: https://www.debian.org/Bugs/\nBug Tracker News: https://www.phoronix.com/news/Debian-Bug-Tracker-2026-Woes\n25 Year Old Report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=78526\nCall For Volunteers: https://lists.debian.org/debian-devel-announce/2026/01/msg00001.html\nMaintainers: https://www.debian.org/intro/organization#data-protection\nQuitting Maintainers: https://lists.debian.org/debian-devel-announce/2026/02/msg00000.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\n#Debian #Linux #LinuxDistro #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" => 1307, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021500_Debian Linux Is Going Through A Crisis.mp4", "id" => "ldoHviThNqQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ldoHviThNqQ", "playlist_index" => 12, "timestamp" => 1771173029, "title" => "Debian Linux Is Going Through A Crisis", "upload_date" => "20260215"} 05:07:48.385 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1870.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:07:48.386 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1871.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] 05:07:48.398 [debug] QUERY OK source="media_items" db=11.2ms idle=1872.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-15 16:30:29Z], 30] 05:07:48.403 [debug] QUERY OK source="media_items" db=3.3ms idle=1267.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" ["Debian is a very important project in the world of Linux but they're going through a bit of a crisis of being Debian, having old systems that people don't want to get involved in and a slow drain of maintainers\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nDebian Linux Bugs: https://www.debian.org/Bugs/\nBug Tracker News: https://www.phoronix.com/news/Debian-Bug-Tracker-2026-Woes\n25 Year Old Report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=78526\nCall For Volunteers: https://lists.debian.org/debian-devel-announce/2026/01/msg00001.html\nMaintainers: https://www.debian.org/intro/organization#data-protection\nQuitting Maintainers: https://lists.debian.org/debian-devel-announce/2026/02/msg00000.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\n#Debian #Linux #LinuxDistro #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.", "Debian Linux Is Going Through A Crisis", "28e4f1d1-783d-4351-add0-a2519183f843", "ldoHviThNqQ", 1307, false, "https://www.youtube.com/watch?v=ldoHviThNqQ", 12, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021500_Debian Linux Is Going Through A Crisis.mp4", false, false, false, 30, [], 98, ~U[2026-02-15 16:30:29Z], ~U[2026-03-01 11:07:48Z], ~U[2026-03-01 11:07:48Z], "Debian is a very important project in the world of Linux but they're going through a bit of a crisis of being Debian, having old systems that people don't want to get involved in and a slow drain of maintainers\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nDebian Linux Bugs: https://www.debian.org/Bugs/\nBug Tracker News: https://www.phoronix.com/news/Debian-Bug-Tracker-2026-Woes\n25 Year Old Report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=78526\nCall For Volunteers: https://lists.debian.org/debian-devel-announce/2026/01/msg00001.html\nMaintainers: https://www.debian.org/intro/organization#data-protection\nQuitting Maintainers: https://lists.debian.org/debian-devel-announce/2026/02/msg00000.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\n#Debian #Linux #LinuxDistro #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.", "Debian Linux Is Going Through A Crisis", "ldoHviThNqQ", 1307, false, "https://www.youtube.com/watch?v=ldoHviThNqQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021500_Debian Linux Is Going Through A Crisis.mp4", false, 30, ~U[2026-02-15 16:30:29Z]] 05:07:48.404 [debug] QUERY OK source="sources" db=0.5ms idle=269.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:07:48.404 [debug] QUERY OK source="media_profiles" db=0.4ms idle=18.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] 05:07:48.405 [debug] QUERY OK source="media_items" db=0.5ms idle=18.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 [2274547] 05:07:48.406 [debug] Current batch of media processed. Will check again in 1000ms 05:07:49.406 [debug] Current batch of media processed. Will check again in 1000ms 05:07:50.407 [debug] Current batch of media processed. Will check again in 1000ms 05:07:51.408 [debug] Current batch of media processed. Will check again in 1000ms 05:07:52.410 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A few months back we saw the release of COSMIC Epoch 1 the first full release of the COSMIC Desktop and now we have the roadmap for the upcoming COSMIC Epochs 2 and 3.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCOSMIC Roadmap: https://blog.system76.com/post/cosmic-epoch-2-and-3-roadmap\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Wayland #LinuxDesktop #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" => 1298, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021400_COSMIC Desktop Epoch 2 And 3 Change Everything.mp4", "id" => "wai6XsiIrLo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=wai6XsiIrLo", "playlist_index" => 13, "timestamp" => 1771086632, "title" => "COSMIC Desktop Epoch 2 And 3 Change Everything", "upload_date" => "20260214"} 05:07:52.411 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=895.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:07:52.411 [debug] QUERY OK source="sources" db=0.4ms idle=896.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:07:52.422 [debug] QUERY OK source="media_items" db=10.5ms queue=0.1ms idle=896.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 16:30:32Z], 30] 05:07:52.426 [debug] QUERY OK source="media_items" db=2.9ms idle=908.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" ["A few months back we saw the release of COSMIC Epoch 1 the first full release of the COSMIC Desktop and now we have the roadmap for the upcoming COSMIC Epochs 2 and 3.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCOSMIC Roadmap: https://blog.system76.com/post/cosmic-epoch-2-and-3-roadmap\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Wayland #LinuxDesktop #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.", "COSMIC Desktop Epoch 2 And 3 Change Everything", "da882970-6de9-436b-8b31-f61160d633e7", "wai6XsiIrLo", 1298, false, "https://www.youtube.com/watch?v=wai6XsiIrLo", 13, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021400_COSMIC Desktop Epoch 2 And 3 Change Everything.mp4", false, false, false, 30, [], 98, ~U[2026-02-14 16:30:32Z], ~U[2026-03-01 11:07:52Z], ~U[2026-03-01 11:07:52Z], "A few months back we saw the release of COSMIC Epoch 1 the first full release of the COSMIC Desktop and now we have the roadmap for the upcoming COSMIC Epochs 2 and 3.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCOSMIC Roadmap: https://blog.system76.com/post/cosmic-epoch-2-and-3-roadmap\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Wayland #LinuxDesktop #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.", "COSMIC Desktop Epoch 2 And 3 Change Everything", "wai6XsiIrLo", 1298, false, "https://www.youtube.com/watch?v=wai6XsiIrLo", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021400_COSMIC Desktop Epoch 2 And 3 Change Everything.mp4", false, 30, ~U[2026-02-14 16:30:32Z]] 05:07:52.427 [debug] QUERY OK source="sources" db=0.4ms idle=283.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:07:52.428 [debug] QUERY OK source="media_profiles" db=0.4ms idle=16.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] 05:07:52.429 [debug] QUERY OK source="media_items" db=0.4ms idle=16.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 [2266970] 05:07:52.429 [debug] Current batch of media processed. Will check again in 1000ms 05:07:53.430 [debug] Current batch of media processed. Will check again in 1000ms 05:07:54.431 [debug] Current batch of media processed. Will check again in 1000ms 05:07:55.432 [debug] Current batch of media processed. Will check again in 1000ms 05:07:56.433 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Linux From Scatch is a project that every Linux user should try at least once but recently they had to make the controversial change of dropping the SysV or System V book in favour of just Systemd due to increased workload and lack of maintainers.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPhoronix Article: https://www.phoronix.com/news/LFS-Dropping-SysVinit\nLFS OpenRC: https://linuxfromscratch.org/~zeckma/lfs-openrc/\nAnnouncement: https://lists.linuxfromscratch.org/sympa/arc/lfs-dev/2026-02/msg00002.html\nSecond Thread: https://lists.linuxfromscratch.org/sympa/arc/blfs-dev/2026-02/msg00001.html\nSysvLFS Project: https://github.com/MymeType/sysvlfs\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#LinuxFromScratch #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 978, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021200_Linux From Scratch Drops SysV In Favour Of Pure Systemd.mp4", "id" => "OHyWs323uPc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=OHyWs323uPc", "playlist_index" => 14, "timestamp" => 1770913819, "title" => "Linux From Scratch Drops SysV In Favour Of Pure Systemd", "upload_date" => "20260212"} 05:07:56.434 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=919.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] 05:07:56.435 [debug] QUERY OK source="sources" db=0.2ms idle=920.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:07:56.446 [debug] QUERY OK source="media_items" db=10.5ms idle=921.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-12 16:30:19Z], 30] 05:07:56.485 [debug] QUERY OK source="media_items" db=37.2ms idle=932.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" ["Linux From Scatch is a project that every Linux user should try at least once but recently they had to make the controversial change of dropping the SysV or System V book in favour of just Systemd due to increased workload and lack of maintainers.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPhoronix Article: https://www.phoronix.com/news/LFS-Dropping-SysVinit\nLFS OpenRC: https://linuxfromscratch.org/~zeckma/lfs-openrc/\nAnnouncement: https://lists.linuxfromscratch.org/sympa/arc/lfs-dev/2026-02/msg00002.html\nSecond Thread: https://lists.linuxfromscratch.org/sympa/arc/blfs-dev/2026-02/msg00001.html\nSysvLFS Project: https://github.com/MymeType/sysvlfs\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#LinuxFromScratch #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 From Scratch Drops SysV In Favour Of Pure Systemd", "a164cdb4-ca65-462c-ad2b-fae084fdc5fe", "OHyWs323uPc", 978, false, "https://www.youtube.com/watch?v=OHyWs323uPc", 14, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021200_Linux From Scratch Drops SysV In Favour Of Pure Systemd.mp4", false, false, false, 30, [], 98, ~U[2026-02-12 16:30:19Z], ~U[2026-03-01 11:07:56Z], ~U[2026-03-01 11:07:56Z], "Linux From Scatch is a project that every Linux user should try at least once but recently they had to make the controversial change of dropping the SysV or System V book in favour of just Systemd due to increased workload and lack of maintainers.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPhoronix Article: https://www.phoronix.com/news/LFS-Dropping-SysVinit\nLFS OpenRC: https://linuxfromscratch.org/~zeckma/lfs-openrc/\nAnnouncement: https://lists.linuxfromscratch.org/sympa/arc/lfs-dev/2026-02/msg00002.html\nSecond Thread: https://lists.linuxfromscratch.org/sympa/arc/blfs-dev/2026-02/msg00001.html\nSysvLFS Project: https://github.com/MymeType/sysvlfs\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#LinuxFromScratch #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 From Scratch Drops SysV In Favour Of Pure Systemd", "OHyWs323uPc", 978, false, "https://www.youtube.com/watch?v=OHyWs323uPc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021200_Linux From Scratch Drops SysV In Favour Of Pure Systemd.mp4", false, 30, ~U[2026-02-12 16:30:19Z]] 05:07:56.485 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=332.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] 05:07:56.486 [debug] QUERY OK source="media_profiles" db=0.4ms idle=51.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] 05:07:56.487 [debug] QUERY OK source="media_items" db=0.4ms idle=51.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 [2251261] 05:07:56.487 [debug] Current batch of media processed. Will check again in 1000ms 05:07:57.488 [debug] Current batch of media processed. Will check again in 1000ms 05:07:58.489 [debug] Current batch of media processed. Will check again in 1000ms 05:07:59.490 [debug] Current batch of media processed. Will check again in 1000ms 05:08:00.074 [info] {"source":"oban","duration":311,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:08:00.492 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "2 and half years and almost 1000 interactions later we finally see the window positioning protocol now going by xx-zones has finally been merge but what does this actually mean for Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHistorical Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/72\nProtocol 1: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/247\nProtocol 2: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/249\nCurrent Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/264\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #LinuxDesktop #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" => 1267, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021100_Wayland Positioning Protocol Is Finally Merged.mp4", "id" => "s-W7mZhx7QQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=s-W7mZhx7QQ", "playlist_index" => 15, "timestamp" => 1770827432, "title" => "Wayland Positioning Protocol Is Finally Merged", "upload_date" => "20260211"} 05:08:00.492 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=977.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:08:00.493 [debug] QUERY OK source="sources" db=0.3ms idle=978.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:08:00.504 [debug] QUERY OK source="media_items" db=10.5ms idle=979.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-11 16:30:32Z], 30] 05:08:00.513 [debug] QUERY OK source="media_items" db=7.1ms idle=431.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" ["2 and half years and almost 1000 interactions later we finally see the window positioning protocol now going by xx-zones has finally been merge but what does this actually mean for Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHistorical Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/72\nProtocol 1: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/247\nProtocol 2: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/249\nCurrent Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/264\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #LinuxDesktop #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.", "Wayland Positioning Protocol Is Finally Merged", "cccb5f6f-df9f-4f01-94ed-d0747b2af937", "s-W7mZhx7QQ", 1267, false, "https://www.youtube.com/watch?v=s-W7mZhx7QQ", 15, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021100_Wayland Positioning Protocol Is Finally Merged.mp4", false, false, false, 30, [], 98, ~U[2026-02-11 16:30:32Z], ~U[2026-03-01 11:08:00Z], ~U[2026-03-01 11:08:00Z], "2 and half years and almost 1000 interactions later we finally see the window positioning protocol now going by xx-zones has finally been merge but what does this actually mean for Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHistorical Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/72\nProtocol 1: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/247\nProtocol 2: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/249\nCurrent Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/264\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #LinuxDesktop #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.", "Wayland Positioning Protocol Is Finally Merged", "s-W7mZhx7QQ", 1267, false, "https://www.youtube.com/watch?v=s-W7mZhx7QQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021100_Wayland Positioning Protocol Is Finally Merged.mp4", false, 30, ~U[2026-02-11 16:30:32Z]] 05:08:00.513 [debug] QUERY OK source="sources" db=0.4ms idle=351.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:08:00.514 [debug] QUERY OK source="media_profiles" db=0.5ms idle=21.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] 05:08:00.516 [debug] QUERY OK source="media_items" db=0.6ms 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 [2243348] 05:08:00.516 [debug] Current batch of media processed. Will check again in 1000ms 05:08:01.517 [debug] Current batch of media processed. Will check again in 1000ms 05:08:02.518 [debug] Current batch of media processed. Will check again in 1000ms 05:08:03.520 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "We've had a lot positive coverage of Linux as of late so why not have something a little bit more on the negative side, recently The Verge put out this piece on Linux and it has been making the rounds.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVerge Article: https://archive.is/eQJnd\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #OpenSource #FOSS #LinuxDesktop #LinuxDistro\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 1691, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021000_He Tried Linux, It Was A Mistake.mp4", "id" => "vncr11f6niw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=vncr11f6niw", "playlist_index" => 16, "timestamp" => 1770741022, "title" => "He Tried Linux, It Was A Mistake", "upload_date" => "20260210"} 05:08:03.521 [debug] QUERY OK source="sources" db=0.4ms idle=1006.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:08:03.521 [debug] QUERY OK source="sources" db=0.3ms idle=1006.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:08:03.531 [debug] QUERY OK source="media_items" db=8.9ms idle=353.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-10 16:30:22Z], 30] 05:08:03.534 [debug] QUERY OK source="media_items" db=2.2ms queue=0.1ms idle=16.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" ["We've had a lot positive coverage of Linux as of late so why not have something a little bit more on the negative side, recently The Verge put out this piece on Linux and it has been making the rounds.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVerge Article: https://archive.is/eQJnd\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #OpenSource #FOSS #LinuxDesktop #LinuxDistro\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "He Tried Linux, It Was A Mistake", "71bc0184-7f7a-4915-9ca8-caec61b9a99b", "vncr11f6niw", 1691, false, "https://www.youtube.com/watch?v=vncr11f6niw", 16, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021000_He Tried Linux, It Was A Mistake.mp4", false, false, false, 30, [], 98, ~U[2026-02-10 16:30:22Z], ~U[2026-03-01 11:08:03Z], ~U[2026-03-01 11:08:03Z], "We've had a lot positive coverage of Linux as of late so why not have something a little bit more on the negative side, recently The Verge put out this piece on Linux and it has been making the rounds.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVerge Article: https://archive.is/eQJnd\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #OpenSource #FOSS #LinuxDesktop #LinuxDistro\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "He Tried Linux, It Was A Mistake", "vncr11f6niw", 1691, false, "https://www.youtube.com/watch?v=vncr11f6niw", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021000_He Tried Linux, It Was A Mistake.mp4", false, 30, ~U[2026-02-10 16:30:22Z]] 05:08:03.534 [debug] QUERY OK source="sources" db=0.3ms idle=19.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:08:03.535 [debug] QUERY OK source="media_profiles" db=0.3ms idle=13.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] 05:08:03.536 [debug] QUERY OK source="media_items" db=0.4ms idle=13.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 [2235638] 05:08:03.536 [debug] Current batch of media processed. Will check again in 1000ms 05:08:04.537 [debug] Current batch of media processed. Will check again in 1000ms 05:08:05.538 [debug] Current batch of media processed. Will check again in 1000ms 05:08:06.539 [debug] Current batch of media processed. Will check again in 1000ms 05:08:07.541 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Rather than constantly breaking your Linux system and treating it like a lab or a test bench, there's probably a better way to do things.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHow To Geek Article: https://www.howtogeek.com/please-stop-screwing-with-your-daily-driver-linux-pc/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop #OpenSource #FOSS #ArchLinux #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 833, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020900_Stop Constantly Breaking Your Linux Desktop.mp4", "id" => "PKSb1VqPbFc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PKSb1VqPbFc", "playlist_index" => 17, "timestamp" => 1770654618, "title" => "Stop Constantly Breaking Your Linux Desktop", "upload_date" => "20260209"} 05:08:07.542 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=363.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [30] 05:08:07.542 [debug] QUERY OK source="sources" db=0.2ms idle=27.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:08:07.553 [debug] QUERY OK source="media_items" db=10.3ms idle=28.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 16:30:18Z], 30] 05:08:07.557 [debug] QUERY OK source="media_items" db=2.5ms idle=39.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" ["Rather than constantly breaking your Linux system and treating it like a lab or a test bench, there's probably a better way to do things.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHow To Geek Article: https://www.howtogeek.com/please-stop-screwing-with-your-daily-driver-linux-pc/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop #OpenSource #FOSS #ArchLinux #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Stop Constantly Breaking Your Linux Desktop", "d040d5b3-83ff-4121-956f-d6f6f7987d29", "PKSb1VqPbFc", 833, false, "https://www.youtube.com/watch?v=PKSb1VqPbFc", 17, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020900_Stop Constantly Breaking Your Linux Desktop.mp4", false, false, false, 30, [], 98, ~U[2026-02-09 16:30:18Z], ~U[2026-03-01 11:08:07Z], ~U[2026-03-01 11:08:07Z], "Rather than constantly breaking your Linux system and treating it like a lab or a test bench, there's probably a better way to do things.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHow To Geek Article: https://www.howtogeek.com/please-stop-screwing-with-your-daily-driver-linux-pc/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop #OpenSource #FOSS #ArchLinux #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Stop Constantly Breaking Your Linux Desktop", "PKSb1VqPbFc", 833, false, "https://www.youtube.com/watch?v=PKSb1VqPbFc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020900_Stop Constantly Breaking Your Linux Desktop.mp4", false, 30, ~U[2026-02-09 16:30:18Z]] 05:08:07.557 [debug] QUERY OK source="sources" db=0.5ms idle=42.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] 05:08:07.558 [debug] QUERY OK source="media_profiles" db=0.4ms idle=16.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] 05:08:07.559 [debug] QUERY OK source="media_items" db=0.5ms 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 [2227703] 05:08:07.559 [debug] Current batch of media processed. Will check again in 1000ms 05:08:08.560 [debug] Current batch of media processed. Will check again in 1000ms 05:08:09.561 [debug] Current batch of media processed. Will check again in 1000ms 05:08:10.017 [info] {"source":"oban","duration":18335,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:08:10.562 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "It's been a work in progress for a year now and it's stable enough as well as there being packages for the KDE 1 revival project, called MiDE powered by a Qt 2 fork called Osiris.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nYear Old Post: https://www.reddit.com/r/linux/comments/1htnhwq/software_left_in_nostalgialand_dead_software/\nRecent Post: https://www.reddit.com/r/linux/comments/1q17svp/midesktop_kde1_fork_development_preview_release/\nMiDE: https://libranext.com/midesktop/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Qt #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" => 693, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020800_Try Out The KDE 1 Revival Project.mp4", "id" => "aj68Zc0WS5c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=aj68Zc0WS5c", "playlist_index" => 18, "timestamp" => 1770568201, "title" => "Try Out The KDE 1 Revival Project", "upload_date" => "20260208"} 05:08:10.563 [debug] QUERY OK source="sources" db=0.4ms idle=1048.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] 05:08:10.564 [debug] QUERY OK source="sources" db=0.2ms idle=1049.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:08:10.575 [debug] QUERY OK source="media_items" db=10.1ms idle=1049.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-08 16:30:01Z], 30] 05:08:10.579 [debug] QUERY OK source="media_items" db=2.8ms idle=557.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" ["It's been a work in progress for a year now and it's stable enough as well as there being packages for the KDE 1 revival project, called MiDE powered by a Qt 2 fork called Osiris.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nYear Old Post: https://www.reddit.com/r/linux/comments/1htnhwq/software_left_in_nostalgialand_dead_software/\nRecent Post: https://www.reddit.com/r/linux/comments/1q17svp/midesktop_kde1_fork_development_preview_release/\nMiDE: https://libranext.com/midesktop/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Qt #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.", "Try Out The KDE 1 Revival Project", "8adf35e1-f676-4684-a1c3-9628e5b0af0d", "aj68Zc0WS5c", 693, false, "https://www.youtube.com/watch?v=aj68Zc0WS5c", 18, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020800_Try Out The KDE 1 Revival Project.mp4", false, false, false, 30, [], 98, ~U[2026-02-08 16:30:01Z], ~U[2026-03-01 11:08:10Z], ~U[2026-03-01 11:08:10Z], "It's been a work in progress for a year now and it's stable enough as well as there being packages for the KDE 1 revival project, called MiDE powered by a Qt 2 fork called Osiris.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nYear Old Post: https://www.reddit.com/r/linux/comments/1htnhwq/software_left_in_nostalgialand_dead_software/\nRecent Post: https://www.reddit.com/r/linux/comments/1q17svp/midesktop_kde1_fork_development_preview_release/\nMiDE: https://libranext.com/midesktop/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Qt #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.", "Try Out The KDE 1 Revival Project", "aj68Zc0WS5c", 693, false, "https://www.youtube.com/watch?v=aj68Zc0WS5c", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020800_Try Out The KDE 1 Revival Project.mp4", false, 30, ~U[2026-02-08 16:30:01Z]] 05:08:10.579 [debug] QUERY OK source="sources" db=0.4ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:08:10.580 [debug] QUERY OK source="media_profiles" db=0.4ms idle=16.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] 05:08:10.581 [debug] QUERY OK source="media_items" db=0.5ms idle=16.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 [2219799] 05:08:10.581 [debug] Current batch of media processed. Will check again in 1000ms 05:08:11.582 [debug] Current batch of media processed. Will check again in 1000ms 05:08:12.583 [debug] Current batch of media processed. Will check again in 1000ms 05:08:13.584 [debug] Current batch of media processed. Will check again in 1000ms 05:08:14.586 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A few months back Duckstation's developer Stenzek decided to pull support for the Arch Linux package and now we're seeing a new check and the same thing being done to NixOS\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlocking Arch: https://www.reddit.com/r/linux_gaming/comments/1mcofl4/duckstation_author_now_actively_blocking_arch/\nDuckstation Git AUR: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=duckstation-git\nPolyform Licence: https://polyformproject.org/licenses/strict/1.0.0/\nCC BY-NC-ND: https://creativecommons.org/licenses/by-nc-nd/4.0/deed.en\nDuckstation New Change: https://github.com/stenzek/duckstation/commit/64d13882479e5598a1276e273d231c95a094158c\nNix Issue 1: https://github.com/NixOS/nixpkgs/issues/341915 \nNix Issue 2: https://github.com/NixOS/nixpkgs/issues/342570\nComment 1: https://www.reddit.com/r/EmulationOnAndroid/comments/1e5337f/comment/ldkttbj/?share_id=-ZppjwRdTcRrJDhRl6hh5&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1 \nComment 2: https://www.reddit.com/r/EmulationOnAndroid/comments/152nduz/comment/jskkkl7/?share_id=GK1l1osSFPxMuKHLWvP49&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Duckstation #OpenSource #FOSS #ArchLinux #Linux\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 1053, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020700_Duckstation Is Back At It Again.mp4", "id" => "2OMxCC6BFxE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=2OMxCC6BFxE", "playlist_index" => 19, "timestamp" => 1770481801, "title" => "Duckstation Is Back At It Again", "upload_date" => "20260207"} 05:08:14.586 [debug] QUERY OK source="sources" db=0.4ms 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] 05:08:14.587 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:08:14.600 [debug] QUERY OK source="media_items" db=11.8ms idle=73.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-07 16:30:01Z], 30] 05:08:14.605 [debug] QUERY OK source="media_items" db=4.0ms idle=86.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" ["A few months back Duckstation's developer Stenzek decided to pull support for the Arch Linux package and now we're seeing a new check and the same thing being done to NixOS\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlocking Arch: https://www.reddit.com/r/linux_gaming/comments/1mcofl4/duckstation_author_now_actively_blocking_arch/\nDuckstation Git AUR: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=duckstation-git\nPolyform Licence: https://polyformproject.org/licenses/strict/1.0.0/\nCC BY-NC-ND: https://creativecommons.org/licenses/by-nc-nd/4.0/deed.en\nDuckstation New Change: https://github.com/stenzek/duckstation/commit/64d13882479e5598a1276e273d231c95a094158c\nNix Issue 1: https://github.com/NixOS/nixpkgs/issues/341915 \nNix Issue 2: https://github.com/NixOS/nixpkgs/issues/342570\nComment 1: https://www.reddit.com/r/EmulationOnAndroid/comments/1e5337f/comment/ldkttbj/?share_id=-ZppjwRdTcRrJDhRl6hh5&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1 \nComment 2: https://www.reddit.com/r/EmulationOnAndroid/comments/152nduz/comment/jskkkl7/?share_id=GK1l1osSFPxMuKHLWvP49&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Duckstation #OpenSource #FOSS #ArchLinux #Linux\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Duckstation Is Back At It Again", "060a0954-14f8-4672-b25b-67199441f131", "2OMxCC6BFxE", 1053, false, "https://www.youtube.com/watch?v=2OMxCC6BFxE", 19, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020700_Duckstation Is Back At It Again.mp4", false, false, false, 30, [], 98, ~U[2026-02-07 16:30:01Z], ~U[2026-03-01 11:08:14Z], ~U[2026-03-01 11:08:14Z], "A few months back Duckstation's developer Stenzek decided to pull support for the Arch Linux package and now we're seeing a new check and the same thing being done to NixOS\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlocking Arch: https://www.reddit.com/r/linux_gaming/comments/1mcofl4/duckstation_author_now_actively_blocking_arch/\nDuckstation Git AUR: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=duckstation-git\nPolyform Licence: https://polyformproject.org/licenses/strict/1.0.0/\nCC BY-NC-ND: https://creativecommons.org/licenses/by-nc-nd/4.0/deed.en\nDuckstation New Change: https://github.com/stenzek/duckstation/commit/64d13882479e5598a1276e273d231c95a094158c\nNix Issue 1: https://github.com/NixOS/nixpkgs/issues/341915 \nNix Issue 2: https://github.com/NixOS/nixpkgs/issues/342570\nComment 1: https://www.reddit.com/r/EmulationOnAndroid/comments/1e5337f/comment/ldkttbj/?share_id=-ZppjwRdTcRrJDhRl6hh5&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1 \nComment 2: https://www.reddit.com/r/EmulationOnAndroid/comments/152nduz/comment/jskkkl7/?share_id=GK1l1osSFPxMuKHLWvP49&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Duckstation #OpenSource #FOSS #ArchLinux #Linux\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Duckstation Is Back At It Again", "2OMxCC6BFxE", 1053, false, "https://www.youtube.com/watch?v=2OMxCC6BFxE", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020700_Duckstation Is Back At It Again.mp4", false, 30, ~U[2026-02-07 16:30:01Z]] 05:08:14.607 [debug] QUERY OK source="sources" db=1.5ms idle=91.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:08:14.608 [debug] QUERY OK source="media_profiles" db=0.5ms idle=20.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] 05:08:14.609 [debug] QUERY OK source="media_items" db=0.8ms idle=20.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 [2211971] 05:08:14.609 [debug] Current batch of media processed. Will check again in 1000ms 05:08:15.610 [debug] Current batch of media processed. Will check again in 1000ms 05:08:16.611 [debug] Current batch of media processed. Will check again in 1000ms 05:08:17.612 [debug] Current batch of media processed. Will check again in 1000ms 05:08:18.080 [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/ba/5f/ba5f3388f8a8c4373f12ec4ac221d6ee024cf9995ad3369b2e8fdd6557f25d08.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/9c/a9/9ca9e5737858fe256612401a3e1ee8e51a7a122697d3d15b5eeb66247f73205d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 05:08:18.082 [debug] Gracefully stopping file follower 05:08:18.083 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1568.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:08:18.084 [debug] QUERY OK source="sources" db=0.3ms idle=1569.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:08:18.096 [debug] QUERY OK source="media_items" db=11.7ms idle=1569.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-28 16:30:16Z], 30] 05:08:18.100 [debug] QUERY OK source="media_items" db=3.0ms idle=1582.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" ["RAM Pricing is absolutely insane, storage is following along, nobody is buying computers anymore and the industry is an absolute mess\n\n==========Support The Channel==========\n► Patreon: https://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#SteamMachine #linux #Computer #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.", "No One Is Buying Computers Anymore", "a98d9c6d-539b-468c-8ff8-d8c9d0294e1a", "iPyTLOySnSc", 1120, false, "https://www.youtube.com/watch?v=iPyTLOySnSc", 1, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022800_No One Is Buying Computers Anymore.mp4", false, false, false, 30, [], 98, ~U[2026-02-28 16:30:16Z], ~U[2026-03-01 11:08:18Z], ~U[2026-03-01 11:08:18Z], "RAM Pricing is absolutely insane, storage is following along, nobody is buying computers anymore and the industry is an absolute mess\n\n==========Support The Channel==========\n► Patreon: https://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#SteamMachine #linux #Computer #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.", "No One Is Buying Computers Anymore", "iPyTLOySnSc", 1120, false, "https://www.youtube.com/watch?v=iPyTLOySnSc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022800_No One Is Buying Computers Anymore.mp4", false, 30, ~U[2026-02-28 16:30:16Z]] 05:08:18.101 [debug] QUERY OK source="sources" db=0.5ms idle=899.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:08:18.113 [debug] QUERY OK source="media_items" db=11.9ms idle=18.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-26 22:28:58Z], 30] 05:08:18.118 [debug] QUERY OK source="media_items" db=3.7ms queue=0.1ms idle=30.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" ["By now you probably know about Kent Overstreet's antics in the Linux kernel with BcacheFS but we're not here to talk about that today, instead we're here to talk his AI chat bot which he is convinced is sentient and feels real emotion.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWebsite: https://poc.bcachefs.org/\nWhite Paper: https://poc.bcachefs.org/paper.pdf\nThe Register: https://www.theregister.com/2026/02/25/bcachefs_creator_ai/\nReddit Post: https://www.reddit.com/r/bcachefs/comments/1rblll1/the_blog_of_an_llm_saying_its_owned_by_kent_and/\nFunny Thread: https://social.vlhl.dev/notice/B3gj1a7Xfl0evR4Hke\nIRC Logs: https://paste.xinu.at/6atmCN\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AI #LLM #Linux #LinuxKernel #FOSS #OpenSource\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "BCacheFS Developer Deployed His AI Girlfriend Helper", "d3e38fee-302d-4655-8d7c-05b0c41cb173", "oOzDI3mCv58", 1702, false, "https://www.youtube.com/watch?v=oOzDI3mCv58", 2, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022600_BCacheFS Developer Deployed His AI Girlfriend Helper.mp4", false, false, false, 30, [], 98, ~U[2026-02-26 22:28:58Z], ~U[2026-03-01 11:08:18Z], ~U[2026-03-01 11:08:18Z], "By now you probably know about Kent Overstreet's antics in the Linux kernel with BcacheFS but we're not here to talk about that today, instead we're here to talk his AI chat bot which he is convinced is sentient and feels real emotion.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWebsite: https://poc.bcachefs.org/\nWhite Paper: https://poc.bcachefs.org/paper.pdf\nThe Register: https://www.theregister.com/2026/02/25/bcachefs_creator_ai/\nReddit Post: https://www.reddit.com/r/bcachefs/comments/1rblll1/the_blog_of_an_llm_saying_its_owned_by_kent_and/\nFunny Thread: https://social.vlhl.dev/notice/B3gj1a7Xfl0evR4Hke\nIRC Logs: https://paste.xinu.at/6atmCN\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AI #LLM #Linux #LinuxKernel #FOSS #OpenSource\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "BCacheFS Developer Deployed His AI Girlfriend Helper", "oOzDI3mCv58", 1702, false, "https://www.youtube.com/watch?v=oOzDI3mCv58", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022600_BCacheFS Developer Deployed His AI Girlfriend Helper.mp4", false, 30, ~U[2026-02-26 22:28:58Z]] 05:08:18.120 [debug] QUERY OK source="sources" db=1.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:08:18.132 [debug] QUERY OK source="media_items" db=11.6ms idle=21.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-25 16:30:18Z], 30] 05:08:18.137 [debug] QUERY OK source="media_items" db=3.4ms idle=32.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" ["For a long time Ladybird browser was going to adopt Swift lang but recently they did a port over to Rust and not just that, used AI to start off the port and this lead to a bit of controversy.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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://ladybird.org/posts/adopting-rust/\nLadybird Swift Issue: https://github.com/LadybirdBrowser/ladybird/issues/933\nPodcast Clip: https://www.youtube.com/watch?v=DSEZ2ZYLdHg\nTwitter Post: https://x.com/awesomekling/status/1822241531501162806\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Rust #Swift #Ladybird #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.", "Ladybird Browser Gave Up C++ For Rust Lang", "f0b96d21-1062-4393-9cec-e285d911a976", "lBd5QGjCcGc", 1095, false, "https://www.youtube.com/watch?v=lBd5QGjCcGc", 3, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022500_Ladybird Browser Gave Up C++ For Rust Lang.mp4", false, false, false, 30, [], 98, ~U[2026-02-25 16:30:18Z], ~U[2026-03-01 11:08:18Z], ~U[2026-03-01 11:08:18Z], "For a long time Ladybird browser was going to adopt Swift lang but recently they did a port over to Rust and not just that, used AI to start off the port and this lead to a bit of controversy.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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://ladybird.org/posts/adopting-rust/\nLadybird Swift Issue: https://github.com/LadybirdBrowser/ladybird/issues/933\nPodcast Clip: https://www.youtube.com/watch?v=DSEZ2ZYLdHg\nTwitter Post: https://x.com/awesomekling/status/1822241531501162806\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Rust #Swift #Ladybird #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.", "Ladybird Browser Gave Up C++ For Rust Lang", "lBd5QGjCcGc", 1095, false, "https://www.youtube.com/watch?v=lBd5QGjCcGc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022500_Ladybird Browser Gave Up C++ For Rust Lang.mp4", false, 30, ~U[2026-02-25 16:30:18Z]] 05:08:18.139 [debug] QUERY OK source="sources" db=1.3ms idle=24.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:08:18.151 [debug] QUERY OK source="media_items" db=11.7ms idle=21.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-24 16:30:16Z], 30] 05:08:18.164 [debug] QUERY OK source="media_items" db=11.5ms idle=31.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" ["You probably know that HDMI 2.1 is a no go on Linux with an AMD GPU, well that's only if you're an HDMI Forum member, who says you have to listen to there rules if you just reverse engineer the support.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHDMI 2.1 FRL Work: https://github.com/mkopec/linux/\nReddit Post: https://www.reddit.com/r/linux_gaming/comments/1r793et/hdmi_21_frl_looking_for_testers/\nXilinux Article: https://www.phoronix.com/news/AMDGPU-HDMI-2.1-But-Xilinx\nAMD Thread: https://gitlab.freedesktop.org/drm/amd/-/issues/1417#note_3335295\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AMD #Linux #HDMI #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.", "HDMI Forum Hates This New Kernel Patch", "8795564f-fd3f-419d-a421-a0d80ccd567e", "N53wMB9d4As", 1021, false, "https://www.youtube.com/watch?v=N53wMB9d4As", 4, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022400_HDMI Forum Hates This New Kernel Patch.mp4", false, false, false, 30, [], 98, ~U[2026-02-24 16:30:16Z], ~U[2026-03-01 11:08:18Z], ~U[2026-03-01 11:08:18Z], "You probably know that HDMI 2.1 is a no go on Linux with an AMD GPU, well that's only if you're an HDMI Forum member, who says you have to listen to there rules if you just reverse engineer the support.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHDMI 2.1 FRL Work: https://github.com/mkopec/linux/\nReddit Post: https://www.reddit.com/r/linux_gaming/comments/1r793et/hdmi_21_frl_looking_for_testers/\nXilinux Article: https://www.phoronix.com/news/AMDGPU-HDMI-2.1-But-Xilinx\nAMD Thread: https://gitlab.freedesktop.org/drm/amd/-/issues/1417#note_3335295\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AMD #Linux #HDMI #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.", "HDMI Forum Hates This New Kernel Patch", "N53wMB9d4As", 1021, false, "https://www.youtube.com/watch?v=N53wMB9d4As", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022400_HDMI Forum Hates This New Kernel Patch.mp4", false, 30, ~U[2026-02-24 16:30:16Z]] 05:08:18.167 [debug] QUERY OK source="sources" db=1.6ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:08:18.180 [debug] QUERY OK source="media_items" db=12.6ms queue=0.1ms idle=29.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-23 16:30:02Z], 30] 05:08:18.184 [debug] QUERY OK source="media_items" db=3.2ms idle=41.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" ["If you're on Linux you've probably written at least a couple of Bash shell scripts, but what if there was another way to do it, a node based way where you didn't have to write any code by hand.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVish Github: https://github.com/Lluciocc/Vish\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Bash #Zsh #Programming #shellscripting \n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Most Unique Way To Make Bash Shell Scripts", "aad0dcb1-30cb-4e0b-99c6-004773c7d4e1", "5SLDNN5DP_o", 867, false, "https://www.youtube.com/watch?v=5SLDNN5DP_o", 5, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022300_The Most Unique Way To Make Bash Shell Scripts.mp4", false, false, false, 30, [], 98, ~U[2026-02-23 16:30:02Z], ~U[2026-03-01 11:08:18Z], ~U[2026-03-01 11:08:18Z], "If you're on Linux you've probably written at least a couple of Bash shell scripts, but what if there was another way to do it, a node based way where you didn't have to write any code by hand.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVish Github: https://github.com/Lluciocc/Vish\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Bash #Zsh #Programming #shellscripting \n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Most Unique Way To Make Bash Shell Scripts", "5SLDNN5DP_o", 867, false, "https://www.youtube.com/watch?v=5SLDNN5DP_o", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022300_The Most Unique Way To Make Bash Shell Scripts.mp4", false, 30, ~U[2026-02-23 16:30:02Z]] 05:08:18.186 [debug] QUERY OK source="sources" db=1.7ms idle=33.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:08:18.199 [debug] QUERY OK source="media_items" db=12.6ms idle=23.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-22 16:30:18Z], 30] 05:08:18.207 [debug] QUERY OK source="media_items" db=5.9ms queue=0.1ms idle=33.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" ["You've probably heard that screensavers aren't possible on Wayland but that's not actually the case, not only are they possible but there are options available to use like XScreensaver even on Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWayland Screensaver: https://www.jwz.org/blog/2023/09/wayland-and-screen-savers/\nXscreensaver 6.11: https://www.jwz.org/blog/2025/07/xscreensaver-6-11/\nXscreensaver 6.12: https://www.jwz.org/blog/2025/07/xscreensaver-6-12/\nLinux Mint: https://blog.linuxmint.com/?p=4991\nKDE: https://invent.kde.org/plasma/kscreenlocker/-/merge_requests/207\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #FOSS #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Screensavers Are Coming To Wayland", "93224581-f202-46e0-99e3-61b125dbed2a", "i6qMTnHQ9ow", 862, false, "https://www.youtube.com/watch?v=i6qMTnHQ9ow", 6, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022200_Screensavers Are Coming To Wayland.mp4", false, false, false, 30, [], 98, ~U[2026-02-22 16:30:18Z], ~U[2026-03-01 11:08:18Z], ~U[2026-03-01 11:08:18Z], "You've probably heard that screensavers aren't possible on Wayland but that's not actually the case, not only are they possible but there are options available to use like XScreensaver even on Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWayland Screensaver: https://www.jwz.org/blog/2023/09/wayland-and-screen-savers/\nXscreensaver 6.11: https://www.jwz.org/blog/2025/07/xscreensaver-6-11/\nXscreensaver 6.12: https://www.jwz.org/blog/2025/07/xscreensaver-6-12/\nLinux Mint: https://blog.linuxmint.com/?p=4991\nKDE: https://invent.kde.org/plasma/kscreenlocker/-/merge_requests/207\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #FOSS #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Screensavers Are Coming To Wayland", "i6qMTnHQ9ow", 862, false, "https://www.youtube.com/watch?v=i6qMTnHQ9ow", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022200_Screensavers Are Coming To Wayland.mp4", false, 30, ~U[2026-02-22 16:30:18Z]] 05:08:18.208 [debug] QUERY OK source="sources" db=0.6ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:08:18.222 [debug] QUERY OK source="media_items" db=13.3ms 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-02-21 16:30:12Z], 30] 05:08:18.228 [debug] QUERY OK source="media_items" db=5.0ms queue=0.1ms 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" ["Nowadays the default look of KDE Plasma is called Breeze but before that during the KDE 4 era we had both Oxygen and Air and this developer is trying to bring it back.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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 Post: https://filipfila.wordpress.com/2026/02/08/beating-an-old-but-not-dead-horse-what-to-do-with-the-oxygen-and-air-themes/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bringing KDE 4 Oxygen Back To Modern KDE", "c8621082-4523-44f2-8152-1b58d7611a3c", "VplYzVNVncg", 851, false, "https://www.youtube.com/watch?v=VplYzVNVncg", 7, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022100_Bringing KDE 4 Oxygen Back To Modern KDE.mp4", false, false, false, 30, [], 98, ~U[2026-02-21 16:30:12Z], ~U[2026-03-01 11:08:18Z], ~U[2026-03-01 11:08:18Z], "Nowadays the default look of KDE Plasma is called Breeze but before that during the KDE 4 era we had both Oxygen and Air and this developer is trying to bring it back.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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 Post: https://filipfila.wordpress.com/2026/02/08/beating-an-old-but-not-dead-horse-what-to-do-with-the-oxygen-and-air-themes/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bringing KDE 4 Oxygen Back To Modern KDE", "VplYzVNVncg", 851, false, "https://www.youtube.com/watch?v=VplYzVNVncg", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022100_Bringing KDE 4 Oxygen Back To Modern KDE.mp4", false, 30, ~U[2026-02-21 16:30:12Z]] 05:08:18.230 [debug] QUERY OK source="sources" db=0.7ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:08:18.243 [debug] QUERY OK source="media_items" db=13.0ms queue=0.1ms idle=23.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 16:30:21Z], 30] 05:08:18.252 [debug] QUERY OK source="media_items" db=6.9ms idle=36.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 window manager space on Wayland has completely changed over the past few years, there was a time when Sway was the only good choice but now you have both Hyprland a dynamic tiler and Niri a scroller and this has changed the equation for what you can do on Wayland.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHyprland: https://hypr.land/\nNiri: https://github.com/niri-wm/niri\nKarousel: https://github.com/peterfajdiga/karousel\nRiver Repo: https://codeberg.org/river/river\nHyprland Wiki: https://wiki.hypr.land/\nNiri Wiki: https://github.com/niri-wm/niri/wiki/Configuration:-Introduction\nQuickshell: https://quickshell.org/\nMaterial Shell: https://github.com/AvengeMedia/DankMaterialShell\nNoctalia: https://github.com/noctalia-dev/noctalia-shell\nCaelestia: https://github.com/caelestia-dots/shell\nTheo Comment: https://x.com/theo/status/2018422881705984483\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Niri #Hyprland #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Hyprland And Niri Changed Wayland Forever", "6a50367e-9b4d-4bd6-8268-0d3ac4b19b3c", "jeY7xQ13v6I", 1078, false, "https://www.youtube.com/watch?v=jeY7xQ13v6I", 8, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021900_Hyprland And Niri Changed Wayland Forever.mp4", false, false, false, 30, [], 98, ~U[2026-02-19 16:30:21Z], ~U[2026-03-01 11:08:18Z], ~U[2026-03-01 11:08:18Z], "The window manager space on Wayland has completely changed over the past few years, there was a time when Sway was the only good choice but now you have both Hyprland a dynamic tiler and Niri a scroller and this has changed the equation for what you can do on Wayland.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHyprland: https://hypr.land/\nNiri: https://github.com/niri-wm/niri\nKarousel: https://github.com/peterfajdiga/karousel\nRiver Repo: https://codeberg.org/river/river\nHyprland Wiki: https://wiki.hypr.land/\nNiri Wiki: https://github.com/niri-wm/niri/wiki/Configuration:-Introduction\nQuickshell: https://quickshell.org/\nMaterial Shell: https://github.com/AvengeMedia/DankMaterialShell\nNoctalia: https://github.com/noctalia-dev/noctalia-shell\nCaelestia: https://github.com/caelestia-dots/shell\nTheo Comment: https://x.com/theo/status/2018422881705984483\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Niri #Hyprland #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Hyprland And Niri Changed Wayland Forever", "jeY7xQ13v6I", 1078, false, "https://www.youtube.com/watch?v=jeY7xQ13v6I", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021900_Hyprland And Niri Changed Wayland Forever.mp4", false, 30, ~U[2026-02-19 16:30:21Z]] 05:08:18.255 [debug] QUERY OK source="sources" db=2.2ms idle=30.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:08:18.270 [debug] QUERY OK source="media_items" db=14.2ms idle=27.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-18 16:30:00Z], 30] 05:08:18.276 [debug] QUERY OK source="media_items" db=4.7ms 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" ["A few weeks back KDE announced that the new Plasma Login Manager was going to require the use of Systemd and thus wouldn't work on FreeBSD or the other BSDs and whilst this is true it's only about the Login Manager not the rest of KDE Plasma\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\n9to5Linux: https://9to5linux.com/kaos-linux-drops-kde-plasma-after-12-years-for-niri-noctalia-to-escape-systemd\nLinuxiac: https://linuxiac.com/kaos-2026-02-debuts-niri-wayland-desktop/\nXDA Developers: https://www.xda-developers.com/linux-distro-dropped-kde-plasma-support-tries-to-escape-systemd/\nKaOS News Post: https://kaosx.us/news/2026/kaos02/\nReddit Post: https://www.reddit.com/r/kde/comments/1r68jmi/a_quick_antifud_faq_to_debunk_the_kde_is_forcing/\nFreeBSd Wayland: https://x61.sh/log/2024/05/27052024192206-sway_openbsd.html\nNetBSD 2020: https://blog.netbsd.org/tnf/entry/wayland_on_netbsd_trials_and\nFreeBSD and NetBSD Now: https://www.youtube.com/watch?v=oo_8gnWQ4xo\nHikari: http://hikari.acmelabs.space/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Is Not Forcing Systemd Use", "a49f0afa-adf9-456b-82ae-9a4acdfd330c", "0l29JZxzong", 843, false, "https://www.youtube.com/watch?v=0l29JZxzong", 9, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021800_KDE Plasma Is Not Forcing Systemd Use.mp4", false, false, false, 30, [], 98, ~U[2026-02-18 16:30:00Z], ~U[2026-03-01 11:08:18Z], ~U[2026-03-01 11:08:18Z], "A few weeks back KDE announced that the new Plasma Login Manager was going to require the use of Systemd and thus wouldn't work on FreeBSD or the other BSDs and whilst this is true it's only about the Login Manager not the rest of KDE Plasma\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\n9to5Linux: https://9to5linux.com/kaos-linux-drops-kde-plasma-after-12-years-for-niri-noctalia-to-escape-systemd\nLinuxiac: https://linuxiac.com/kaos-2026-02-debuts-niri-wayland-desktop/\nXDA Developers: https://www.xda-developers.com/linux-distro-dropped-kde-plasma-support-tries-to-escape-systemd/\nKaOS News Post: https://kaosx.us/news/2026/kaos02/\nReddit Post: https://www.reddit.com/r/kde/comments/1r68jmi/a_quick_antifud_faq_to_debunk_the_kde_is_forcing/\nFreeBSd Wayland: https://x61.sh/log/2024/05/27052024192206-sway_openbsd.html\nNetBSD 2020: https://blog.netbsd.org/tnf/entry/wayland_on_netbsd_trials_and\nFreeBSD and NetBSD Now: https://www.youtube.com/watch?v=oo_8gnWQ4xo\nHikari: http://hikari.acmelabs.space/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Is Not Forcing Systemd Use", "0l29JZxzong", 843, false, "https://www.youtube.com/watch?v=0l29JZxzong", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021800_KDE Plasma Is Not Forcing Systemd Use.mp4", false, 30, ~U[2026-02-18 16:30:00Z]] 05:08:18.278 [debug] QUERY OK source="sources" db=1.8ms queue=0.1ms idle=33.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:08:18.292 [debug] QUERY OK source="media_items" db=13.4ms queue=0.1ms idle=27.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-17 16:30:28Z], 30] 05:08:18.298 [debug] QUERY OK source="media_items" db=4.6ms queue=0.1ms idle=38.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 if I told you that an AI agent just tried to ruin the career of a developer on Matplotlib who was following Matplotlib policy to not allow AI agents, writing a hilarious blog post on the situation but it gets even better from there\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nIssue: https://github.com/matplotlib/matplotlib/issues/31130\nMerge Request: https://github.com/matplotlib/matplotlib/pull/31132\nOpenClaw Joins OpenAI: https://www.itnews.com.au/news/openclaw-founder-joins-openai-623662\nAI Blog Post 1: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-gatekeeping-in-open-source-the-scott-shambaugh-story.html\nAI Blog Post 2: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-matplotlib-truce-and-lessons.html\nScott Blog Post 1: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me/\nArs Technica Article: https://web.archive.org/web/20260213194851/https://arstechnica.com/ai/2026/02/after-a-routine-code-rejection-an-ai-agent-published-a-hit-piece-on-someone-by-name/\nScott Blog Post 2: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me-part-2/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#AI #OpenSource #Developer #SoftwareDeveloper #Programmer\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "When AI Agents Try To Ruin Your Career", "7bfba8e4-22d5-473d-8220-6a4bf291d04f", "fMoUE59H9bs", 1382, false, "https://www.youtube.com/watch?v=fMoUE59H9bs", 10, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021700_When AI Agents Try To Ruin Your Career.mp4", false, false, false, 30, [], 98, ~U[2026-02-17 16:30:28Z], ~U[2026-03-01 11:08:18Z], ~U[2026-03-01 11:08:18Z], "What if I told you that an AI agent just tried to ruin the career of a developer on Matplotlib who was following Matplotlib policy to not allow AI agents, writing a hilarious blog post on the situation but it gets even better from there\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nIssue: https://github.com/matplotlib/matplotlib/issues/31130\nMerge Request: https://github.com/matplotlib/matplotlib/pull/31132\nOpenClaw Joins OpenAI: https://www.itnews.com.au/news/openclaw-founder-joins-openai-623662\nAI Blog Post 1: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-gatekeeping-in-open-source-the-scott-shambaugh-story.html\nAI Blog Post 2: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-matplotlib-truce-and-lessons.html\nScott Blog Post 1: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me/\nArs Technica Article: https://web.archive.org/web/20260213194851/https://arstechnica.com/ai/2026/02/after-a-routine-code-rejection-an-ai-agent-published-a-hit-piece-on-someone-by-name/\nScott Blog Post 2: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me-part-2/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#AI #OpenSource #Developer #SoftwareDeveloper #Programmer\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "When AI Agents Try To Ruin Your Career", "fMoUE59H9bs", 1382, false, "https://www.youtube.com/watch?v=fMoUE59H9bs", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021700_When AI Agents Try To Ruin Your Career.mp4", false, 30, ~U[2026-02-17 16:30:28Z]] 05:08:18.301 [debug] QUERY OK source="sources" db=1.7ms queue=0.1ms idle=29.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:08:18.316 [debug] QUERY OK source="media_items" db=14.6ms queue=0.1ms idle=26.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-16 16:30:11Z], 30] 05:08:18.322 [debug] QUERY OK source="media_items" db=3.6ms queue=0.1ms idle=38.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 probably know that you should be safe whilst using the AUR on Arch Linux but how does one go about doing that.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nAUR Post: https://bertptrs.nl/2026/01/30/how-to-review-an-aur-package.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#Linux #ArchLinux #FOSS #OpenSource #LinuxDistro\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Staying Safe On Arch Linux", "fe40b786-7580-48f4-82d7-2eb66f660a12", "bTKATeeQlvM", 1155, false, "https://www.youtube.com/watch?v=bTKATeeQlvM", 11, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021600_Staying Safe On Arch Linux.mp4", false, false, false, 30, [], 98, ~U[2026-02-16 16:30:11Z], ~U[2026-03-01 11:08:18Z], ~U[2026-03-01 11:08:18Z], "You probably know that you should be safe whilst using the AUR on Arch Linux but how does one go about doing that.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nAUR Post: https://bertptrs.nl/2026/01/30/how-to-review-an-aur-package.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#Linux #ArchLinux #FOSS #OpenSource #LinuxDistro\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Staying Safe On Arch Linux", "bTKATeeQlvM", 1155, false, "https://www.youtube.com/watch?v=bTKATeeQlvM", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021600_Staying Safe On Arch Linux.mp4", false, 30, ~U[2026-02-16 16:30:11Z]] 05:08:18.325 [debug] QUERY OK source="sources" db=2.1ms queue=0.2ms idle=29.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] 05:08:18.340 [debug] QUERY OK source="media_items" db=14.2ms queue=0.1ms idle=27.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-15 16:30:29Z], 30] 05:08:18.346 [debug] QUERY OK source="media_items" db=4.7ms queue=0.1ms idle=39.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" ["Debian is a very important project in the world of Linux but they're going through a bit of a crisis of being Debian, having old systems that people don't want to get involved in and a slow drain of maintainers\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nDebian Linux Bugs: https://www.debian.org/Bugs/\nBug Tracker News: https://www.phoronix.com/news/Debian-Bug-Tracker-2026-Woes\n25 Year Old Report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=78526\nCall For Volunteers: https://lists.debian.org/debian-devel-announce/2026/01/msg00001.html\nMaintainers: https://www.debian.org/intro/organization#data-protection\nQuitting Maintainers: https://lists.debian.org/debian-devel-announce/2026/02/msg00000.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\n#Debian #Linux #LinuxDistro #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.", "Debian Linux Is Going Through A Crisis", "64b85b8b-8f62-442b-b429-4c5428621ee6", "ldoHviThNqQ", 1307, false, "https://www.youtube.com/watch?v=ldoHviThNqQ", 12, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021500_Debian Linux Is Going Through A Crisis.mp4", false, false, false, 30, [], 98, ~U[2026-02-15 16:30:29Z], ~U[2026-03-01 11:08:18Z], ~U[2026-03-01 11:08:18Z], "Debian is a very important project in the world of Linux but they're going through a bit of a crisis of being Debian, having old systems that people don't want to get involved in and a slow drain of maintainers\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nDebian Linux Bugs: https://www.debian.org/Bugs/\nBug Tracker News: https://www.phoronix.com/news/Debian-Bug-Tracker-2026-Woes\n25 Year Old Report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=78526\nCall For Volunteers: https://lists.debian.org/debian-devel-announce/2026/01/msg00001.html\nMaintainers: https://www.debian.org/intro/organization#data-protection\nQuitting Maintainers: https://lists.debian.org/debian-devel-announce/2026/02/msg00000.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\n#Debian #Linux #LinuxDistro #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.", "Debian Linux Is Going Through A Crisis", "ldoHviThNqQ", 1307, false, "https://www.youtube.com/watch?v=ldoHviThNqQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021500_Debian Linux Is Going Through A Crisis.mp4", false, 30, ~U[2026-02-15 16:30:29Z]] 05:08:18.349 [debug] QUERY OK source="sources" db=2.0ms queue=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" = ?) [30] 05:08:18.363 [debug] QUERY OK source="media_items" db=13.3ms queue=0.1ms idle=28.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-14 16:30:32Z], 30] 05:08:18.368 [debug] QUERY OK source="media_items" db=3.8ms queue=0.1ms idle=39.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 few months back we saw the release of COSMIC Epoch 1 the first full release of the COSMIC Desktop and now we have the roadmap for the upcoming COSMIC Epochs 2 and 3.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCOSMIC Roadmap: https://blog.system76.com/post/cosmic-epoch-2-and-3-roadmap\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Wayland #LinuxDesktop #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.", "COSMIC Desktop Epoch 2 And 3 Change Everything", "473238c8-b2fe-4938-9915-ae63faab56d3", "wai6XsiIrLo", 1298, false, "https://www.youtube.com/watch?v=wai6XsiIrLo", 13, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021400_COSMIC Desktop Epoch 2 And 3 Change Everything.mp4", false, false, false, 30, [], 98, ~U[2026-02-14 16:30:32Z], ~U[2026-03-01 11:08:18Z], ~U[2026-03-01 11:08:18Z], "A few months back we saw the release of COSMIC Epoch 1 the first full release of the COSMIC Desktop and now we have the roadmap for the upcoming COSMIC Epochs 2 and 3.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCOSMIC Roadmap: https://blog.system76.com/post/cosmic-epoch-2-and-3-roadmap\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Wayland #LinuxDesktop #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.", "COSMIC Desktop Epoch 2 And 3 Change Everything", "wai6XsiIrLo", 1298, false, "https://www.youtube.com/watch?v=wai6XsiIrLo", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021400_COSMIC Desktop Epoch 2 And 3 Change Everything.mp4", false, 30, ~U[2026-02-14 16:30:32Z]] 05:08:18.370 [debug] QUERY OK source="sources" db=1.6ms idle=29.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:08:18.385 [debug] QUERY OK source="media_items" db=14.3ms queue=0.1ms idle=25.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-12 16:30:19Z], 30] 05:08:18.391 [debug] QUERY OK source="media_items" db=4.3ms idle=37.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" ["Linux From Scatch is a project that every Linux user should try at least once but recently they had to make the controversial change of dropping the SysV or System V book in favour of just Systemd due to increased workload and lack of maintainers.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPhoronix Article: https://www.phoronix.com/news/LFS-Dropping-SysVinit\nLFS OpenRC: https://linuxfromscratch.org/~zeckma/lfs-openrc/\nAnnouncement: https://lists.linuxfromscratch.org/sympa/arc/lfs-dev/2026-02/msg00002.html\nSecond Thread: https://lists.linuxfromscratch.org/sympa/arc/blfs-dev/2026-02/msg00001.html\nSysvLFS Project: https://github.com/MymeType/sysvlfs\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#LinuxFromScratch #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 From Scratch Drops SysV In Favour Of Pure Systemd", "bb1efa3a-eff8-44c7-b307-d7f8e6e234f6", "OHyWs323uPc", 978, false, "https://www.youtube.com/watch?v=OHyWs323uPc", 14, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021200_Linux From Scratch Drops SysV In Favour Of Pure Systemd.mp4", false, false, false, 30, [], 98, ~U[2026-02-12 16:30:19Z], ~U[2026-03-01 11:08:18Z], ~U[2026-03-01 11:08:18Z], "Linux From Scatch is a project that every Linux user should try at least once but recently they had to make the controversial change of dropping the SysV or System V book in favour of just Systemd due to increased workload and lack of maintainers.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPhoronix Article: https://www.phoronix.com/news/LFS-Dropping-SysVinit\nLFS OpenRC: https://linuxfromscratch.org/~zeckma/lfs-openrc/\nAnnouncement: https://lists.linuxfromscratch.org/sympa/arc/lfs-dev/2026-02/msg00002.html\nSecond Thread: https://lists.linuxfromscratch.org/sympa/arc/blfs-dev/2026-02/msg00001.html\nSysvLFS Project: https://github.com/MymeType/sysvlfs\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#LinuxFromScratch #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 From Scratch Drops SysV In Favour Of Pure Systemd", "OHyWs323uPc", 978, false, "https://www.youtube.com/watch?v=OHyWs323uPc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021200_Linux From Scratch Drops SysV In Favour Of Pure Systemd.mp4", false, 30, ~U[2026-02-12 16:30:19Z]] 05:08:18.393 [debug] QUERY OK source="sources" db=1.8ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:08:18.407 [debug] QUERY OK source="media_items" db=13.3ms queue=0.1ms idle=26.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-11 16:30:32Z], 30] 05:08:18.413 [debug] QUERY OK source="media_items" db=4.0ms queue=0.1ms idle=37.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" ["2 and half years and almost 1000 interactions later we finally see the window positioning protocol now going by xx-zones has finally been merge but what does this actually mean for Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHistorical Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/72\nProtocol 1: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/247\nProtocol 2: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/249\nCurrent Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/264\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #LinuxDesktop #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.", "Wayland Positioning Protocol Is Finally Merged", "92b2b68b-9d81-41ff-868a-cb91052669a7", "s-W7mZhx7QQ", 1267, false, "https://www.youtube.com/watch?v=s-W7mZhx7QQ", 15, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021100_Wayland Positioning Protocol Is Finally Merged.mp4", false, false, false, 30, [], 98, ~U[2026-02-11 16:30:32Z], ~U[2026-03-01 11:08:18Z], ~U[2026-03-01 11:08:18Z], "2 and half years and almost 1000 interactions later we finally see the window positioning protocol now going by xx-zones has finally been merge but what does this actually mean for Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHistorical Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/72\nProtocol 1: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/247\nProtocol 2: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/249\nCurrent Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/264\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #LinuxDesktop #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.", "Wayland Positioning Protocol Is Finally Merged", "s-W7mZhx7QQ", 1267, false, "https://www.youtube.com/watch?v=s-W7mZhx7QQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021100_Wayland Positioning Protocol Is Finally Merged.mp4", false, 30, ~U[2026-02-11 16:30:32Z]] 05:08:18.415 [debug] QUERY OK source="sources" db=1.8ms queue=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:08:18.431 [debug] QUERY OK source="media_items" db=14.6ms queue=0.1ms idle=25.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-10 16:30:22Z], 30] 05:08:18.436 [debug] QUERY OK source="media_items" db=3.7ms idle=37.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" ["We've had a lot positive coverage of Linux as of late so why not have something a little bit more on the negative side, recently The Verge put out this piece on Linux and it has been making the rounds.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVerge Article: https://archive.is/eQJnd\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #OpenSource #FOSS #LinuxDesktop #LinuxDistro\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "He Tried Linux, It Was A Mistake", "4fdcb2ca-05a5-4288-835b-c06a1658298e", "vncr11f6niw", 1691, false, "https://www.youtube.com/watch?v=vncr11f6niw", 16, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021000_He Tried Linux, It Was A Mistake.mp4", false, false, false, 30, [], 98, ~U[2026-02-10 16:30:22Z], ~U[2026-03-01 11:08:18Z], ~U[2026-03-01 11:08:18Z], "We've had a lot positive coverage of Linux as of late so why not have something a little bit more on the negative side, recently The Verge put out this piece on Linux and it has been making the rounds.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVerge Article: https://archive.is/eQJnd\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #OpenSource #FOSS #LinuxDesktop #LinuxDistro\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "He Tried Linux, It Was A Mistake", "vncr11f6niw", 1691, false, "https://www.youtube.com/watch?v=vncr11f6niw", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021000_He Tried Linux, It Was A Mistake.mp4", false, 30, ~U[2026-02-10 16:30:22Z]] 05:08:18.438 [debug] QUERY OK source="sources" db=2.1ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:08:18.453 [debug] QUERY OK source="media_items" db=13.9ms queue=0.1ms idle=26.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-09 16:30:18Z], 30] 05:08:18.459 [debug] QUERY OK source="media_items" db=4.5ms queue=0.1ms 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" ["Rather than constantly breaking your Linux system and treating it like a lab or a test bench, there's probably a better way to do things.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHow To Geek Article: https://www.howtogeek.com/please-stop-screwing-with-your-daily-driver-linux-pc/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop #OpenSource #FOSS #ArchLinux #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Stop Constantly Breaking Your Linux Desktop", "00a9bcde-0f0a-44a3-9bb9-3250b8c3daa5", "PKSb1VqPbFc", 833, false, "https://www.youtube.com/watch?v=PKSb1VqPbFc", 17, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020900_Stop Constantly Breaking Your Linux Desktop.mp4", false, false, false, 30, [], 98, ~U[2026-02-09 16:30:18Z], ~U[2026-03-01 11:08:18Z], ~U[2026-03-01 11:08:18Z], "Rather than constantly breaking your Linux system and treating it like a lab or a test bench, there's probably a better way to do things.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHow To Geek Article: https://www.howtogeek.com/please-stop-screwing-with-your-daily-driver-linux-pc/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop #OpenSource #FOSS #ArchLinux #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Stop Constantly Breaking Your Linux Desktop", "PKSb1VqPbFc", 833, false, "https://www.youtube.com/watch?v=PKSb1VqPbFc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020900_Stop Constantly Breaking Your Linux Desktop.mp4", false, 30, ~U[2026-02-09 16:30:18Z]] 05:08:18.462 [debug] QUERY OK source="sources" db=2.1ms queue=0.3ms idle=29.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] 05:08:18.477 [debug] QUERY OK source="media_items" db=14.2ms idle=27.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-08 16:30:01Z], 30] 05:08:18.483 [debug] QUERY OK source="media_items" db=4.0ms queue=0.1ms idle=39.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" ["It's been a work in progress for a year now and it's stable enough as well as there being packages for the KDE 1 revival project, called MiDE powered by a Qt 2 fork called Osiris.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nYear Old Post: https://www.reddit.com/r/linux/comments/1htnhwq/software_left_in_nostalgialand_dead_software/\nRecent Post: https://www.reddit.com/r/linux/comments/1q17svp/midesktop_kde1_fork_development_preview_release/\nMiDE: https://libranext.com/midesktop/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Qt #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.", "Try Out The KDE 1 Revival Project", "e8b5c2e4-153d-4418-8fd5-d8d4d5407f17", "aj68Zc0WS5c", 693, false, "https://www.youtube.com/watch?v=aj68Zc0WS5c", 18, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020800_Try Out The KDE 1 Revival Project.mp4", false, false, false, 30, [], 98, ~U[2026-02-08 16:30:01Z], ~U[2026-03-01 11:08:18Z], ~U[2026-03-01 11:08:18Z], "It's been a work in progress for a year now and it's stable enough as well as there being packages for the KDE 1 revival project, called MiDE powered by a Qt 2 fork called Osiris.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nYear Old Post: https://www.reddit.com/r/linux/comments/1htnhwq/software_left_in_nostalgialand_dead_software/\nRecent Post: https://www.reddit.com/r/linux/comments/1q17svp/midesktop_kde1_fork_development_preview_release/\nMiDE: https://libranext.com/midesktop/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Qt #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.", "Try Out The KDE 1 Revival Project", "aj68Zc0WS5c", 693, false, "https://www.youtube.com/watch?v=aj68Zc0WS5c", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020800_Try Out The KDE 1 Revival Project.mp4", false, 30, ~U[2026-02-08 16:30:01Z]] 05:08:18.485 [debug] QUERY OK source="sources" db=1.9ms queue=0.1ms idle=30.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:08:18.499 [debug] QUERY OK source="media_items" db=13.1ms idle=27.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-07 16:30:01Z], 30] 05:08:18.505 [debug] QUERY OK source="media_items" db=4.5ms idle=37.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" ["A few months back Duckstation's developer Stenzek decided to pull support for the Arch Linux package and now we're seeing a new check and the same thing being done to NixOS\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlocking Arch: https://www.reddit.com/r/linux_gaming/comments/1mcofl4/duckstation_author_now_actively_blocking_arch/\nDuckstation Git AUR: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=duckstation-git\nPolyform Licence: https://polyformproject.org/licenses/strict/1.0.0/\nCC BY-NC-ND: https://creativecommons.org/licenses/by-nc-nd/4.0/deed.en\nDuckstation New Change: https://github.com/stenzek/duckstation/commit/64d13882479e5598a1276e273d231c95a094158c\nNix Issue 1: https://github.com/NixOS/nixpkgs/issues/341915 \nNix Issue 2: https://github.com/NixOS/nixpkgs/issues/342570\nComment 1: https://www.reddit.com/r/EmulationOnAndroid/comments/1e5337f/comment/ldkttbj/?share_id=-ZppjwRdTcRrJDhRl6hh5&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1 \nComment 2: https://www.reddit.com/r/EmulationOnAndroid/comments/152nduz/comment/jskkkl7/?share_id=GK1l1osSFPxMuKHLWvP49&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Duckstation #OpenSource #FOSS #ArchLinux #Linux\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Duckstation Is Back At It Again", "eb913743-573a-4948-badd-0f19d0098783", "2OMxCC6BFxE", 1053, false, "https://www.youtube.com/watch?v=2OMxCC6BFxE", 19, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020700_Duckstation Is Back At It Again.mp4", false, false, false, 30, [], 98, ~U[2026-02-07 16:30:01Z], ~U[2026-03-01 11:08:18Z], ~U[2026-03-01 11:08:18Z], "A few months back Duckstation's developer Stenzek decided to pull support for the Arch Linux package and now we're seeing a new check and the same thing being done to NixOS\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlocking Arch: https://www.reddit.com/r/linux_gaming/comments/1mcofl4/duckstation_author_now_actively_blocking_arch/\nDuckstation Git AUR: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=duckstation-git\nPolyform Licence: https://polyformproject.org/licenses/strict/1.0.0/\nCC BY-NC-ND: https://creativecommons.org/licenses/by-nc-nd/4.0/deed.en\nDuckstation New Change: https://github.com/stenzek/duckstation/commit/64d13882479e5598a1276e273d231c95a094158c\nNix Issue 1: https://github.com/NixOS/nixpkgs/issues/341915 \nNix Issue 2: https://github.com/NixOS/nixpkgs/issues/342570\nComment 1: https://www.reddit.com/r/EmulationOnAndroid/comments/1e5337f/comment/ldkttbj/?share_id=-ZppjwRdTcRrJDhRl6hh5&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1 \nComment 2: https://www.reddit.com/r/EmulationOnAndroid/comments/152nduz/comment/jskkkl7/?share_id=GK1l1osSFPxMuKHLWvP49&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Duckstation #OpenSource #FOSS #ArchLinux #Linux\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Duckstation Is Back At It Again", "2OMxCC6BFxE", 1053, false, "https://www.youtube.com/watch?v=2OMxCC6BFxE", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020700_Duckstation Is Back At It Again.mp4", false, 30, ~U[2026-02-07 16:30:01Z]] 05:08:18.507 [debug] QUERY OK source="sources" db=1.9ms queue=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:08:18.521 [debug] QUERY OK source="media_items" db=13.3ms queue=0.1ms idle=25.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 16:30:00Z], 30] 05:08:18.528 [debug] QUERY OK source="media_items" db=5.0ms idle=36.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" ["Recently Bazzite announced the Open Gaming Collective, and normally this would be cause for celebration but this was also tied up in a big drama with a core project maintainer also being removed.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWINE Announcement: https://gitlab.winehq.org/wine/wine/-/releases/wine-11.0\nNexus Mods: https://www.nexusmods.com/news/15433\nGOG Galaxy: https://www.reddit.com/r/linux_gaming/comments/1qnu1i4/gog_is_seeking_a_senior_software_engineer_with_c/\nOGC Announcement: https://universal-blue.discourse.group/t/a-brighter-future-for-bazzite/11575?ref=gardinerbryant.com\nHHD: https://github.com/hhd-dev/hhd\nThe Comments: https://x.com/SapphoSys/status/2000870028057698761\nGPD Win First: https://www.gamingonlinux.com/2025/09/gpd-win-5-highlights-support-for-running-bazzite-linux/\nOfficial Announcement: https://videocardz.com/newz/gpd-win-5-to-become-the-first-amd-strix-halo-handheld-to-get-official-bazzite-os-support\nKyle Correction: https://universal-blue.discourse.group/t/correction-regarding-gpd-win5-support-for-bazzite/11574\nGPD Statement: https://www.reddit.com/r/gpdwin/comments/1qqup52/there_really_have_been_a_lot_of_dramatic/\nAntheas Statement: https://ba.antheas.dev/bazzite-postmortem.html\nNonSteamLaunchers: https://github.com/moraroy/NonSteamLaunchers-On-Steam-Deck/issues/393\nCachyOS Comments: https://www.reddit.com/r/cachyos/comments/1qq0dxr/open_gaming_collective_ogc_formed_to_push_linux/\nFinal Bazzite Statement: https://universal-blue.discourse.group/t/upholding-our-values-our-final-update-on-gpd/11594\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Bazzite #LinuxGaming #GamingOnLinux #FOSS #OpenSource\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bazzite Linux Got Into Some Drama", "8de66b0a-b41b-41f0-abf8-b2899208f1cd", "aajSOtHd8uc", 1887, false, "https://www.youtube.com/watch?v=aajSOtHd8uc", 20, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020500_Bazzite Linux Got Into Some Drama.mp4", false, false, false, 30, [], 98, ~U[2026-02-05 16:30:00Z], ~U[2026-03-01 11:08:18Z], ~U[2026-03-01 11:08:18Z], "Recently Bazzite announced the Open Gaming Collective, and normally this would be cause for celebration but this was also tied up in a big drama with a core project maintainer also being removed.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWINE Announcement: https://gitlab.winehq.org/wine/wine/-/releases/wine-11.0\nNexus Mods: https://www.nexusmods.com/news/15433\nGOG Galaxy: https://www.reddit.com/r/linux_gaming/comments/1qnu1i4/gog_is_seeking_a_senior_software_engineer_with_c/\nOGC Announcement: https://universal-blue.discourse.group/t/a-brighter-future-for-bazzite/11575?ref=gardinerbryant.com\nHHD: https://github.com/hhd-dev/hhd\nThe Comments: https://x.com/SapphoSys/status/2000870028057698761\nGPD Win First: https://www.gamingonlinux.com/2025/09/gpd-win-5-highlights-support-for-running-bazzite-linux/\nOfficial Announcement: https://videocardz.com/newz/gpd-win-5-to-become-the-first-amd-strix-halo-handheld-to-get-official-bazzite-os-support\nKyle Correction: https://universal-blue.discourse.group/t/correction-regarding-gpd-win5-support-for-bazzite/11574\nGPD Statement: https://www.reddit.com/r/gpdwin/comments/1qqup52/there_really_have_been_a_lot_of_dramatic/\nAntheas Statement: https://ba.antheas.dev/bazzite-postmortem.html\nNonSteamLaunchers: https://github.com/moraroy/NonSteamLaunchers-On-Steam-Deck/issues/393\nCachyOS Comments: https://www.reddit.com/r/cachyos/comments/1qq0dxr/open_gaming_collective_ogc_formed_to_push_linux/\nFinal Bazzite Statement: https://universal-blue.discourse.group/t/upholding-our-values-our-final-update-on-gpd/11594\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Bazzite #LinuxGaming #GamingOnLinux #FOSS #OpenSource\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bazzite Linux Got Into Some Drama", "aajSOtHd8uc", 1887, false, "https://www.youtube.com/watch?v=aajSOtHd8uc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020500_Bazzite Linux Got Into Some Drama.mp4", false, 30, ~U[2026-02-05 16:30:00Z]] 05:08:18.530 [debug] QUERY OK source="sources" db=1.6ms idle=29.6ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-01 11:08:18Z], ~U[2026-03-01 11:08:18Z], 30] 05:08:18.544 [debug] QUERY OK source="media_items" db=12.9ms idle=26.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")))) [30] 05:08:18.557 [debug] QUERY OK source="media_items" db=12.5ms idle=36.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")))) [30] 05:08:18.559 [debug] QUERY OK source="media_items" db=1.9ms queue=0.1ms idle=35.9ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [30] 05:08:18.564 [debug] QUERY OK source="tasks" db=1.6ms idle=19.0ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189082, 30, ~U[2026-03-01 11:08:18Z], ~U[2026-03-01 11:08:18Z]] 05:08:18.566 [info] {"args":{"id":30},"id":189028,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":108774883,"event":"job:stop","queue_time":986496,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 05:08:40.033 [info] {"source":"oban","duration":15475,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 05:08:43.265 [info] {"args":{"id":38},"id":188929,"meta":{},"system_time":1772363323265445120,"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"]} 05:08:43.266 [debug] QUERY OK source="sources" db=0.4ms idle=751.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:08:43.267 [debug] QUERY OK source="settings" db=0.4ms idle=752.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:08:43.270 [debug] QUERY OK source="media_items" db=3.0ms idle=752.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")))) [38] 05:08:43.271 [debug] QUERY OK source="media_items" db=0.4ms idle=12.5ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [38] 05:08:43.271 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:08:43.272 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:08:43.272 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:08:43.277 [debug] QUERY OK source="media_items" db=2.3ms idle=4.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [38] 05:08:43.280 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 05:08:43.280 [debug] Current batch of media processed. Will check again in 1000ms 05:08:43.280 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:08:43.280 [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 [] 05:08:43.281 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:08:43.281 [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/64/97/6497137678386d0eb336081ac5a4c7980804f2dbf901dde11dbef10ee59cd735.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/8a/7e/8a7e359997e918feda92131252f783a602e0dab257b7b0410dfdce551fa0d21d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:08:44.281 [debug] Current batch of media processed. Will check again in 1000ms 05:08:45.282 [debug] Current batch of media processed. Will check again in 1000ms 05:08:46.283 [debug] Current batch of media processed. Will check again in 1000ms 05:08:47.284 [debug] Current batch of media processed. Will check again in 1000ms 05:08:48.285 [debug] Current batch of media processed. Will check again in 1000ms 05:08:49.286 [debug] Current batch of media processed. Will check again in 1000ms 05:08:50.287 [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"} 05:08:50.288 [debug] QUERY OK source="sources" db=0.4ms queue=0.2ms idle=1773.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] 05:08:50.289 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1774.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] 05:08:50.290 [debug] QUERY OK source="media_items" db=0.8ms idle=1775.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-19 02:35:15Z], 38] 05:08:50.292 [debug] QUERY OK source="media_items" db=1.4ms idle=1020.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 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", "bb6b6644-b4bf-46b8-849e-8b1a48c7c483", "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-03-01 11:08:50Z], ~U[2026-03-01 11:08:50Z], "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]] 05:08:50.293 [debug] QUERY OK source="sources" db=0.3ms 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] 05:08:50.294 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 05:08:50.295 [debug] QUERY OK source="media_items" db=0.4ms 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 [2302048] 05:08:50.295 [debug] Current batch of media processed. Will check again in 1000ms 05:08:51.296 [debug] Current batch of media processed. Will check again in 1000ms 05:08:52.297 [debug] Current batch of media processed. Will check again in 1000ms 05:08:53.299 [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"} 05:08:53.300 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1784.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:08:53.300 [debug] QUERY OK source="sources" db=0.3ms idle=1785.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:08:53.303 [debug] QUERY OK source="media_items" db=1.9ms idle=1786.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-05 12:30:00Z], 38] 05:08:53.305 [debug] QUERY OK source="media_items" db=1.6ms 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" ["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", "bbd70153-324b-4e72-8e60-98c460d6b8dd", "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-03-01 11:08:53Z], ~U[2026-03-01 11:08:53Z], "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]] 05:08:53.306 [debug] QUERY OK source="sources" db=0.3ms idle=25.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:08:53.306 [debug] QUERY OK source="media_profiles" db=0.4ms idle=6.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:08:53.307 [debug] QUERY OK source="media_items" db=0.4ms idle=6.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [2195118] 05:08:53.307 [debug] Current batch of media processed. Will check again in 1000ms 05:08:54.308 [debug] Current batch of media processed. Will check again in 1000ms 05:08:55.309 [debug] Current batch of media processed. Will check again in 1000ms 05:08:56.310 [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"} 05:08:56.311 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1796.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:08:56.312 [debug] QUERY OK source="sources" db=0.2ms idle=1797.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:08:56.314 [debug] QUERY OK source="media_items" db=1.8ms idle=1797.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-21 12:30:00Z], 38] 05:08:56.317 [debug] QUERY OK source="media_items" db=1.8ms idle=1031.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", "a23970db-a2c1-4608-a08c-86de1b7a5fac", "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-03-01 11:08:56Z], ~U[2026-03-01 11:08:56Z], "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]] 05:08:56.317 [debug] QUERY OK source="sources" db=0.3ms idle=31.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:08:56.318 [debug] QUERY OK source="media_profiles" db=0.2ms idle=6.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:08:56.318 [debug] QUERY OK source="media_items" db=0.3ms idle=6.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [2074959] 05:08:56.318 [debug] Current batch of media processed. Will check again in 1000ms 05:08:57.319 [debug] Current batch of media processed. Will check again in 1000ms 05:08:58.320 [debug] Current batch of media processed. Will check again in 1000ms 05:08:59.321 [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"} 05:08:59.323 [debug] QUERY OK source="sources" db=0.7ms idle=1807.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:08:59.323 [debug] QUERY OK source="sources" db=0.3ms idle=1808.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:08:59.326 [debug] QUERY OK source="media_items" db=2.2ms idle=1809.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-14 17:44:18Z], 38] 05:08:59.336 [debug] QUERY OK source="media_items" db=8.9ms idle=1035.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" ["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", "627ffabd-dfd2-4e19-8b02-7a5487cd7c1b", "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-03-01 11:08:59Z], ~U[2026-03-01 11:08:59Z], "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]] 05:08:59.337 [debug] QUERY OK source="sources" db=0.5ms queue=0.2ms idle=43.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] 05:08:59.338 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=14.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] 05:08:59.339 [debug] QUERY OK source="media_items" db=0.5ms idle=14.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [2020529] 05:08:59.339 [debug] Current batch of media processed. Will check again in 1000ms 05:09:00.074 [info] {"source":"oban","duration":337,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:09:00.340 [debug] Current batch of media processed. Will check again in 1000ms 05:09:01.341 [debug] Current batch of media processed. Will check again in 1000ms 05:09:02.342 [debug] Current batch of media processed. Will check again in 1000ms 05:09:03.343 [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"} 05:09:03.344 [debug] QUERY OK source="sources" db=0.5ms idle=1045.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] 05:09:03.345 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=830.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] 05:09:03.348 [debug] QUERY OK source="media_items" db=2.3ms idle=831.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-13 21:45:55Z], 38] 05:09:03.350 [debug] QUERY OK source="media_items" db=1.4ms idle=834.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" ["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", "fd8c16ad-3d69-4c1e-ad04-905eefa28e79", "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-03-01 11:09:03Z], ~U[2026-03-01 11:09:03Z], "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]] 05:09:03.351 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=49.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 05:09:03.352 [debug] QUERY OK source="media_profiles" db=0.4ms queue=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] 05:09:03.353 [debug] QUERY OK source="media_items" db=0.4ms 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 [2014095] 05:09:03.353 [debug] Current batch of media processed. Will check again in 1000ms 05:09:04.354 [debug] Current batch of media processed. Will check again in 1000ms 05:09:05.355 [debug] Current batch of media processed. Will check again in 1000ms 05:09:06.356 [debug] Current batch of media processed. Will check again in 1000ms 05:09:07.357 [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"} 05:09:07.358 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=843.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:09:07.359 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=844.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:09:07.362 [debug] QUERY OK source="media_items" db=2.3ms queue=0.1ms idle=845.6ms 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] 05:09:07.365 [debug] QUERY OK source="media_items" db=1.6ms idle=848.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" ["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", "d233d5fb-d4c8-405e-baab-f62591980d85", "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-03-01 11:09:07Z], ~U[2026-03-01 11:09:07Z], "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]] 05:09:07.365 [debug] QUERY OK source="sources" db=0.5ms idle=56.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] 05:09:07.366 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 05:09:07.367 [debug] QUERY OK source="media_items" db=0.5ms idle=7.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [2003157] 05:09:07.367 [debug] Current batch of media processed. Will check again in 1000ms 05:09:08.368 [debug] Current batch of media processed. Will check again in 1000ms 05:09:09.369 [debug] Current batch of media processed. Will check again in 1000ms 05:09:10.054 [info] {"source":"oban","duration":20456,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:09:10.371 [debug] Current batch of media processed. Will check again in 1000ms 05:09:11.371 [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"} 05:09:11.372 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1056.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:09:11.373 [debug] QUERY OK source="sources" db=0.3ms idle=858.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:09:11.376 [debug] QUERY OK source="media_items" db=2.2ms queue=0.1ms idle=859.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] 05:09:11.379 [debug] QUERY OK source="media_items" db=1.8ms idle=862.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" ["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", "eee8e343-f67c-49c4-83d5-6a6c26c1c439", "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-03-01 11:09:11Z], ~U[2026-03-01 11:09:11Z], "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]] 05:09:11.380 [debug] QUERY OK source="sources" db=1.2ms 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" = ?) [38] 05:09:11.381 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 05:09:11.382 [debug] QUERY OK source="media_items" db=0.5ms idle=8.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1911765] 05:09:11.382 [debug] Current batch of media processed. Will check again in 1000ms 05:09:12.383 [debug] Current batch of media processed. Will check again in 1000ms 05:09:13.384 [debug] Current batch of media processed. Will check again in 1000ms 05:09:14.385 [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"} 05:09:14.386 [debug] QUERY OK source="sources" db=0.3ms idle=1871.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:09:14.387 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1872.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:09:14.389 [debug] QUERY OK source="media_items" db=2.0ms idle=1872.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-24 12:31:13Z], 38] 05:09:14.393 [debug] QUERY OK source="media_items" db=2.6ms idle=1067.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-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", "d351fa25-8295-4af5-a68d-cb69f61610ff", "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-03-01 11:09:14Z], ~U[2026-03-01 11:09:14Z], "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]] 05:09:14.394 [debug] QUERY OK source="sources" db=0.4ms idle=68.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:09:14.394 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=7.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] 05:09:14.396 [debug] QUERY OK source="media_items" db=0.7ms queue=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 [1850728] 05:09:14.396 [debug] Current batch of media processed. Will check again in 1000ms 05:09:15.397 [debug] Current batch of media processed. Will check again in 1000ms 05:09:16.398 [debug] Current batch of media processed. Will check again in 1000ms 05:09:17.399 [debug] Current batch of media processed. Will check again in 1000ms 05:09:18.400 [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"} 05:09:18.401 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=886.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] 05:09:18.402 [debug] QUERY OK source="sources" db=0.2ms idle=887.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:09:18.405 [debug] QUERY OK source="media_items" db=2.2ms idle=888.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-18 12:30:00Z], 38] 05:09:18.423 [debug] QUERY OK source="media_items" db=17.0ms idle=890.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://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", "c1cbae48-f876-4ce4-aa4a-69065be6f85e", "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-03-01 11:09:18Z], ~U[2026-03-01 11:09:18Z], "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]] 05:09:18.424 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [38] 05:09:18.424 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=22.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] 05:09:18.425 [debug] QUERY OK source="media_items" db=0.5ms idle=22.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 [1803892] 05:09:18.425 [debug] Current batch of media processed. Will check again in 1000ms 05:09:19.426 [debug] Current batch of media processed. Will check again in 1000ms 05:09:20.427 [debug] Current batch of media processed. Will check again in 1000ms 05:09:21.428 [debug] Current batch of media processed. Will check again in 1000ms 05:09:22.429 [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"} 05:09:22.430 [debug] QUERY OK source="sources" db=0.5ms queue=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 (?)) [38] 05:09:22.431 [debug] QUERY OK source="sources" db=0.3ms idle=916.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 05:09:22.435 [debug] QUERY OK source="media_items" db=2.7ms queue=0.1ms idle=917.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-12 12:30:40Z], 38] 05:09:22.437 [debug] QUERY OK source="media_items" db=1.9ms idle=920.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" ["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", "fb7050d4-6365-463a-9135-82f0daacd445", "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-03-01 11:09:22Z], ~U[2026-03-01 11:09:22Z], "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]] 05:09:22.438 [debug] QUERY OK source="sources" db=0.4ms idle=96.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:09:22.439 [debug] QUERY OK source="media_profiles" db=0.5ms 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] 05:09:22.440 [debug] QUERY OK source="media_items" db=0.5ms 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 [1755808] 05:09:22.440 [debug] Current batch of media processed. Will check again in 1000ms 05:09:23.441 [debug] Current batch of media processed. Will check again in 1000ms 05:09:24.442 [debug] Current batch of media processed. Will check again in 1000ms 05:09:25.443 [debug] Current batch of media processed. Will check again in 1000ms 05:09:26.444 [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"} 05:09:26.445 [debug] QUERY OK source="sources" db=0.4ms idle=930.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:09:26.446 [debug] QUERY OK source="sources" db=0.4ms idle=931.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] 05:09:26.450 [debug] QUERY OK source="media_items" db=2.9ms idle=932.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-11 12:31:07Z], 38] 05:09:26.453 [debug] QUERY OK source="media_items" db=2.0ms idle=936.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", "ed4b3eae-c083-4136-ab6d-8ed203c2bc14", "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-03-01 11:09:26Z], ~U[2026-03-01 11:09:26Z], "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]] 05:09:26.453 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=103.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:09:26.454 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=8.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] 05:09:26.455 [debug] QUERY OK source="media_items" db=0.5ms 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 [1747915] 05:09:26.455 [debug] Current batch of media processed. Will check again in 1000ms 05:09:27.456 [debug] Current batch of media processed. Will check again in 1000ms 05:09:28.457 [debug] Current batch of media processed. Will check again in 1000ms 05:09:29.458 [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"} 05:09:29.459 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1944.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] 05:09:29.460 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 05:09:29.463 [debug] QUERY OK source="media_items" db=2.3ms queue=0.1ms idle=1946.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-10 12:30:41Z], 38] 05:09:29.466 [debug] QUERY OK source="media_items" db=2.0ms idle=1109.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 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)", "0c505a62-dddb-4eb3-a0ab-adfb73840b91", "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-03-01 11:09:29Z], ~U[2026-03-01 11:09:29Z], "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]] 05:09:29.467 [debug] QUERY OK source="sources" db=0.5ms idle=109.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] 05:09:29.468 [debug] QUERY OK source="media_profiles" db=0.4ms queue=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] 05:09:29.469 [debug] QUERY OK source="media_items" db=0.5ms 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 [1740020] 05:09:29.469 [debug] Current batch of media processed. Will check again in 1000ms 05:09:30.469 [debug] Current batch of media processed. Will check again in 1000ms 05:09:31.470 [debug] Current batch of media processed. Will check again in 1000ms 05:09:32.471 [debug] Current batch of media processed. Will check again in 1000ms 05:09:33.472 [debug] Current batch of media processed. Will check again in 1000ms 05:09:34.473 [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"} 05:09:34.474 [debug] QUERY OK source="sources" db=0.4ms idle=1959.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] 05:09:34.475 [debug] QUERY OK source="sources" db=0.4ms idle=1960.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:09:34.478 [debug] QUERY OK source="media_items" db=2.7ms idle=1960.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-09 12:30:42Z], 38] 05:09:34.481 [debug] QUERY OK source="media_items" db=2.0ms idle=1112.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 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", "a0413470-683b-47be-bff2-94d79f9ed639", "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-03-01 11:09:34Z], ~U[2026-03-01 11:09:34Z], "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]] 05:09:34.482 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [38] 05:09:34.483 [debug] QUERY OK source="media_profiles" db=0.4ms queue=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] 05:09:34.484 [debug] QUERY OK source="media_items" db=0.5ms idle=8.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1732004] 05:09:34.484 [debug] Current batch of media processed. Will check again in 1000ms 05:09:35.485 [debug] Current batch of media processed. Will check again in 1000ms 05:09:36.486 [debug] Current batch of media processed. Will check again in 1000ms 05:09:37.487 [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"} 05:09:37.488 [debug] QUERY OK source="sources" db=0.3ms 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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [38] 05:09:37.489 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1974.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:09:37.491 [debug] QUERY OK source="media_items" db=1.9ms idle=1974.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-08 13:12:46Z], 38] 05:09:37.493 [debug] QUERY OK source="media_items" db=1.3ms idle=1119.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" ["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", "6e55f63e-b74d-4722-99a3-2fc4671263ad", "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-03-01 11:09:37Z], ~U[2026-03-01 11:09:37Z], "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]] 05:09:37.494 [debug] QUERY OK source="sources" db=0.3ms idle=119.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:09:37.494 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:09:37.495 [debug] QUERY OK source="media_items" db=0.4ms 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 [1724024] 05:09:37.495 [debug] Current batch of media processed. Will check again in 1000ms 05:09:38.496 [debug] Current batch of media processed. Will check again in 1000ms 05:09:39.497 [debug] Current batch of media processed. Will check again in 1000ms 05:09:40.075 [info] {"source":"oban","duration":19861,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 05:09:40.498 [debug] Current batch of media processed. Will check again in 1000ms 05:09:41.499 [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"} 05:09:41.500 [debug] QUERY OK source="sources" db=0.4ms idle=1119.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:09:41.501 [debug] QUERY OK source="sources" db=0.5ms idle=986.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:09:41.504 [debug] QUERY OK source="media_items" db=2.2ms idle=987.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-07 12:30:45Z], 38] 05:09:41.506 [debug] QUERY OK source="media_items" db=1.7ms idle=989.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 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", "2cdf5226-6a43-486a-9a26-11ae0e3f25f4", "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-03-01 11:09:41Z], ~U[2026-03-01 11:09:41Z], "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]] 05:09:41.508 [debug] QUERY OK source="sources" db=1.1ms idle=124.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] 05:09:41.509 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 05:09:41.510 [debug] QUERY OK source="media_items" db=0.5ms 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 [1716069] 05:09:41.510 [debug] Current batch of media processed. Will check again in 1000ms 05:09:42.511 [debug] Current batch of media processed. Will check again in 1000ms 05:09:43.512 [debug] Current batch of media processed. Will check again in 1000ms 05:09:44.513 [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"} 05:09:44.514 [debug] QUERY OK source="sources" db=0.3ms idle=1999.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:09:44.515 [debug] QUERY OK source="sources" db=0.2ms idle=126.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:09:44.518 [debug] QUERY OK source="media_items" db=2.3ms idle=1.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-06 12:31:32Z], 38] 05:09:44.555 [debug] QUERY OK source="media_items" db=36.6ms queue=0.1ms 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" ["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", "40b10a1f-81d9-491c-86e4-a67171736845", "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-03-01 11:09:44Z], ~U[2026-03-01 11:09:44Z], "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]] 05:09:44.556 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=41.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:09:44.557 [debug] QUERY OK source="media_profiles" db=0.4ms idle=41.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] 05:09:44.558 [debug] QUERY OK source="media_items" db=0.6ms idle=42.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 [1708301] 05:09:44.558 [debug] Current batch of media processed. Will check again in 1000ms 05:09:45.559 [debug] Current batch of media processed. Will check again in 1000ms 05:09:46.560 [debug] Current batch of media processed. Will check again in 1000ms 05:09:47.561 [debug] Current batch of media processed. Will check again in 1000ms 05:09:48.562 [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"} 05:09:48.563 [debug] QUERY OK source="sources" db=0.4ms idle=165.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:09:48.564 [debug] QUERY OK source="sources" db=0.3ms idle=49.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] 05:09:48.567 [debug] QUERY OK source="media_items" db=2.2ms idle=50.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-05 12:30:13Z], 38] 05:09:48.574 [debug] QUERY OK source="media_items" db=6.3ms idle=52.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 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", "6181b178-614d-460e-a230-3c88fa235be3", "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-03-01 11:09:48Z], ~U[2026-03-01 11:09:48Z], "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]] 05:09:48.575 [debug] QUERY OK source="sources" db=0.6ms idle=59.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:09:48.576 [debug] QUERY OK source="media_profiles" db=0.6ms idle=11.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] 05:09:48.577 [debug] QUERY OK source="media_items" db=0.7ms queue=0.2ms idle=12.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 [1700307] 05:09:48.577 [debug] Current batch of media processed. Will check again in 1000ms 05:09:49.578 [debug] Current batch of media processed. Will check again in 1000ms 05:09:50.579 [debug] Current batch of media processed. Will check again in 1000ms 05:09:51.580 [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"} 05:09:51.581 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1066.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:09:51.582 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1067.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:09:51.585 [debug] QUERY OK source="media_items" db=2.7ms idle=1068.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] 05:09:51.589 [debug] QUERY OK source="media_items" db=2.5ms idle=1071.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 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", "36b5bfea-7364-44d5-b61f-46b0157639e6", "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-03-01 11:09:51Z], ~U[2026-03-01 11:09:51Z], "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]] 05:09:51.590 [debug] QUERY OK source="sources" db=0.5ms idle=185.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:09:51.591 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:09:51.592 [debug] QUERY OK source="media_items" db=0.5ms 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 [1691828] 05:09:51.592 [debug] Current batch of media processed. Will check again in 1000ms 05:09:52.593 [debug] Current batch of media processed. Will check again in 1000ms 05:09:53.594 [debug] Current batch of media processed. Will check again in 1000ms 05:09:54.595 [debug] Current batch of media processed. Will check again in 1000ms 05:09:54.994 [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/64/97/6497137678386d0eb336081ac5a4c7980804f2dbf901dde11dbef10ee59cd735.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/8a/7e/8a7e359997e918feda92131252f783a602e0dab257b7b0410dfdce551fa0d21d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 05:09:54.996 [debug] Gracefully stopping file follower 05:09:54.996 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1481.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:09:54.997 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1482.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:09:55.000 [debug] QUERY OK source="media_items" db=2.5ms queue=0.1ms idle=1483.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-19 02:35:15Z], 38] 05:09:55.003 [debug] QUERY OK source="media_items" db=1.7ms idle=1486.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", "7ef6522d-ed94-4229-a932-22f4acb2d6ac", "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-03-01 11:09:55Z], ~U[2026-03-01 11:09:55Z], "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]] 05:09:55.004 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=592.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] 05:09:55.007 [debug] QUERY OK source="media_items" db=2.5ms queue=0.1ms 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-02-05 12:30:00Z], 38] 05:09:55.010 [debug] QUERY OK source="media_items" db=2.0ms 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" ["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", "828fa687-b14c-444f-b421-195274bd5468", "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-03-01 11:09:55Z], ~U[2026-03-01 11:09:55Z], "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]] 05:09:55.011 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=9.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 05:09:55.015 [debug] QUERY OK source="media_items" db=3.5ms queue=0.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-01-21 12:30:00Z], 38] 05:09:55.018 [debug] QUERY OK source="media_items" db=2.4ms 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" ["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", "1dda7cbf-c017-4f69-807c-a47af304571b", "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-03-01 11:09:55Z], ~U[2026-03-01 11:09:55Z], "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]] 05:09:55.020 [debug] QUERY OK source="sources" db=0.7ms 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" = ?) [38] 05:09:55.023 [debug] QUERY OK source="media_items" db=3.2ms 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-01-14 17:44:18Z], 38] 05:09:55.026 [debug] QUERY OK source="media_items" db=2.1ms idle=12.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" ["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", "d831a197-dd65-4ff1-8948-6033647e757b", "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-03-01 11:09:55Z], ~U[2026-03-01 11:09:55Z], "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]] 05:09:55.027 [debug] QUERY OK source="sources" db=0.7ms 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" = ?) [38] 05:09:55.031 [debug] QUERY OK source="media_items" db=2.8ms queue=0.1ms idle=9.6ms 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] 05:09:55.034 [debug] QUERY OK source="media_items" db=2.0ms idle=11.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" ["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", "e3e2162a-f07c-4b2d-9537-c054ebae452a", "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-03-01 11:09:55Z], ~U[2026-03-01 11:09:55Z], "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]] 05:09:55.035 [debug] QUERY OK source="sources" db=1.2ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 05:09:55.039 [debug] QUERY OK source="media_items" db=3.1ms queue=0.1ms 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-01-12 12:30:10Z], 38] 05:09:55.042 [debug] QUERY OK source="media_items" db=2.1ms idle=12.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" ["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", "8a68849c-1dad-46e2-8781-c1d2bfd19da8", "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-03-01 11:09:55Z], ~U[2026-03-01 11:09:55Z], "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]] 05:09:55.044 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=12.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:09:55.048 [debug] QUERY OK source="media_items" db=3.2ms queue=0.1ms idle=10.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-01 03:33:41Z], 38] 05:09:55.054 [debug] QUERY OK source="media_items" db=5.5ms 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" ["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", "beb37647-542d-4533-a7e3-df4edbf21fc9", "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-03-01 11:09:55Z], ~U[2026-03-01 11:09:55Z], "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]] 05:09:55.056 [debug] QUERY OK source="sources" db=0.9ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 05:09:55.059 [debug] QUERY OK source="media_items" db=3.1ms queue=0.1ms idle=14.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-24 12:31:13Z], 38] 05:09:55.064 [debug] QUERY OK source="media_items" db=3.5ms idle=16.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://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", "f8ed2e91-5e84-4931-956e-dde3926111b2", "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-03-01 11:09:55Z], ~U[2026-03-01 11:09:55Z], "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]] 05:09:55.066 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=17.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:09:55.070 [debug] QUERY OK source="media_items" db=3.1ms queue=0.1ms idle=12.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-18 12:30:00Z], 38] 05:09:55.074 [debug] QUERY OK source="media_items" db=3.5ms 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" ["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", "9eaf6bd9-826e-4cee-abb8-b6cfd18fa711", "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-03-01 11:09:55Z], ~U[2026-03-01 11:09:55Z], "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]] 05:09:55.076 [debug] QUERY OK source="sources" db=0.8ms idle=15.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:09:55.079 [debug] QUERY OK source="media_items" db=2.8ms queue=0.1ms 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[2025-12-12 12:30:40Z], 38] 05:09:55.082 [debug] QUERY OK source="media_items" db=2.0ms 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" ["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", "93f73224-15c3-43c2-b7b6-d8d17cc5040b", "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-03-01 11:09:55Z], ~U[2026-03-01 11:09:55Z], "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]] 05:09:55.083 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=12.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] 05:09:55.086 [debug] QUERY OK source="media_items" db=2.8ms 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[2025-12-11 12:31:07Z], 38] 05:09:55.089 [debug] QUERY OK source="media_items" db=2.1ms 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" ["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", "6deffae6-4f7d-41d4-8343-a7a744524d11", "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-03-01 11:09:55Z], ~U[2026-03-01 11:09:55Z], "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]] 05:09:55.090 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=10.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] 05:09:55.094 [debug] QUERY OK source="media_items" db=2.8ms queue=0.3ms idle=9.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] 05:09:55.097 [debug] QUERY OK source="media_items" db=2.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" ["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)", "4d9d4843-90ca-42e6-a137-c915ed07e9d4", "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-03-01 11:09:55Z], ~U[2026-03-01 11:09:55Z], "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]] 05:09:55.098 [debug] QUERY OK source="sources" db=0.6ms idle=11.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:09:55.101 [debug] QUERY OK source="media_items" db=2.7ms idle=9.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-09 12:30:42Z], 38] 05:09:55.104 [debug] QUERY OK source="media_items" db=2.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" ["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", "a3189996-ec1e-4afa-83cd-b66e70e01f35", "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-03-01 11:09:55Z], ~U[2026-03-01 11:09:55Z], "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]] 05:09:55.105 [debug] QUERY OK source="sources" db=0.7ms 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" = ?) [38] 05:09:55.109 [debug] QUERY OK source="media_items" db=2.9ms queue=0.1ms idle=8.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-08 13:12:46Z], 38] 05:09:55.112 [debug] QUERY OK source="media_items" db=2.1ms 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" ["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", "8728382b-21c4-41bf-acb5-20b550ad9bc1", "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-03-01 11:09:55Z], ~U[2026-03-01 11:09:55Z], "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]] 05:09:55.113 [debug] QUERY OK source="sources" db=0.6ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 05:09:55.116 [debug] QUERY OK source="media_items" db=2.8ms queue=0.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[2025-12-07 12:30:45Z], 38] 05:09:55.120 [debug] QUERY OK source="media_items" db=2.2ms 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" ["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", "3e42cd34-4c39-45e0-ac28-5045be996f47", "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-03-01 11:09:55Z], ~U[2026-03-01 11:09:55Z], "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]] 05:09:55.121 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=11.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:09:55.124 [debug] QUERY OK source="media_items" db=2.7ms 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[2025-12-06 12:31:32Z], 38] 05:09:55.127 [debug] QUERY OK source="media_items" db=2.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" ["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", "eecb3cb1-820b-4545-ae64-06531bff9cb4", "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-03-01 11:09:55Z], ~U[2026-03-01 11:09:55Z], "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]] 05:09:55.128 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=11.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:09:55.132 [debug] QUERY OK source="media_items" db=3.0ms 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[2025-12-05 12:30:13Z], 38] 05:09:55.135 [debug] QUERY OK source="media_items" db=2.2ms 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" ["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", "e53d9af4-a8a5-4903-951f-da962d0933ed", "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-03-01 11:09:55Z], ~U[2026-03-01 11:09:55Z], "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]] 05:09:55.136 [debug] QUERY OK source="sources" db=0.7ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 05:09:55.139 [debug] QUERY OK source="media_items" db=2.8ms idle=9.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-04 12:30:16Z], 38] 05:09:55.142 [debug] QUERY OK source="media_items" db=2.4ms 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" ["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", "b1f2fb91-9fd7-456d-beb6-55481fd213d2", "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-03-01 11:09:55Z], ~U[2026-03-01 11:09:55Z], "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]] 05:09:55.143 [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" = ?) [38] 05:09:55.147 [debug] QUERY OK source="media_items" db=3.0ms queue=0.1ms idle=9.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-03 12:31:03Z], 38] 05:09:55.151 [debug] QUERY OK source="media_items" db=3.1ms idle=11.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" ["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", "0e0c68e9-a97b-4b49-b209-edcb2e3392fc", "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-03-01 11:09:55Z], ~U[2026-03-01 11:09:55Z], "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]] 05:09:55.152 [debug] QUERY OK source="sources" db=0.8ms idle=12.4ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-01 11:09:55Z], ~U[2026-03-01 11:09:55Z], 38] 05:09:55.156 [debug] QUERY OK source="media_items" db=3.5ms queue=0.1ms idle=10.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")))) [38] 05:09:55.160 [debug] QUERY OK source="media_items" db=3.4ms queue=0.2ms idle=13.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")))) [38] 05:09:55.162 [debug] QUERY OK source="media_items" db=0.8ms idle=14.0ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [38] 05:09:55.167 [debug] QUERY OK source="tasks" db=0.9ms idle=9.2ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189083, 38, ~U[2026-03-01 11:09:55Z], ~U[2026-03-01 11:09:55Z]] 05:09:55.168 [info] {"args":{"id":38},"id":188929,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":71901727,"event":"job:stop","queue_time":113715,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 05:10:00.075 [info] {"source":"oban","duration":348,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:10:10.092 [info] {"source":"oban","duration":15612,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:10:40.107 [info] {"source":"oban","duration":13667,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:11:00.076 [info] {"source":"oban","duration":321,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:11:08.568 [info] {"args":{"id":51},"id":189068,"meta":{},"system_time":1772363468568618224,"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"]} 05:11:08.569 [debug] QUERY OK source="sources" db=0.9ms idle=1054.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [51] 05:11:08.571 [debug] QUERY OK source="settings" db=0.8ms idle=1055.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:11:08.571 [debug] QUERY OK source="media_profiles" db=0.3ms idle=1011.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] 05:11:08.572 [debug] QUERY OK source="settings" db=0.2ms idle=10.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:11:08.572 [debug] Fetching recent media IDs from YouTube RSS feed for source: UCUMwY9iS8oMyWDYIe6_RmoA 05:11:08.891 [debug] Media ids fetched from RSS: ["WxN9VzwoGGw", "9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI"] 05:11:08.893 [debug] QUERY OK source="media_items" db=1.0ms idle=323.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 (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [51, "WxN9VzwoGGw", "9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI"] 05:11:08.895 [debug] QUERY OK source="media_items" db=0.7ms idle=324.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")))) [51] 05:11:08.897 [debug] QUERY OK source="tasks" db=0.4ms idle=324.6ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189084, 51, ~U[2026-03-01 11:11:08Z], ~U[2026-03-01 11:11:08Z]] 05:11:08.898 [info] {"args":{"id":51},"id":189068,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":328548,"event":"job:stop","queue_time":183930,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 05:11:10.121 [info] {"source":"oban","duration":13949,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:11:40.135 [info] {"source":"oban","duration":12738,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:12:00.077 [info] {"source":"oban","duration":301,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:12:10.149 [info] {"source":"oban","duration":12928,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:12:40.159 [info] {"source":"oban","duration":8866,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:13:00.078 [info] {"source":"oban","duration":271,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:13:10.169 [info] {"source":"oban","duration":8625,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:13:40.182 [info] {"source":"oban","duration":13269,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:14:00.079 [info] {"source":"oban","duration":320,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:14:10.192 [info] {"source":"oban","duration":9187,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:14:40.203 [info] {"source":"oban","duration":10409,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:15:00.080 [info] {"source":"oban","duration":309,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:15:10.213 [info] {"source":"oban","duration":9358,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:15:40.226 [info] {"source":"oban","duration":11978,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:16:00.082 [info] {"source":"oban","duration":273,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:16:10.236 [info] {"source":"oban","duration":8718,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 05:16:40.248 [info] {"source":"oban","duration":11675,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:16:48.210 [info] {"args":{"id":52},"id":189081,"meta":{},"system_time":1772363808209965675,"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"]} 05:16:48.210 [debug] QUERY OK source="sources" db=0.3ms idle=695.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:16:48.211 [debug] QUERY OK source="settings" db=0.2ms idle=696.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:16:48.211 [debug] QUERY OK source="media_profiles" db=0.2ms idle=696.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] 05:16:48.212 [debug] QUERY OK source="settings" db=0.8ms idle=8.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:16:48.212 [debug] Fetching recent media IDs from YouTube RSS feed for source: UC9H0HzpKf5JlazkADWnW1Jw 05:16:48.406 [debug] Media ids fetched from RSS: ["AmqmI9SxdNc", "QwSDD2rvrbg", "M5fh85WVkPU", "AJGwm6P_f_8", "mfWhlH-5ooY", "eMl7jhLvHOQ", "GYBOJiYvtbI", "zMSL-kTF8LE", "lf9pprK5gg8", "WP69p26qNZY", "OuvUK9ZdjPs", "CA-0MvrvWAU", "-80I7UZL3hk", "hJ3wG8PVhPw", "HzeBu2mVff4"] 05:16:48.407 [debug] QUERY OK source="media_items" db=0.8ms idle=197.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, "AmqmI9SxdNc", "QwSDD2rvrbg", "M5fh85WVkPU", "AJGwm6P_f_8", "mfWhlH-5ooY", "eMl7jhLvHOQ", "GYBOJiYvtbI", "zMSL-kTF8LE", "lf9pprK5gg8", "WP69p26qNZY", "OuvUK9ZdjPs", "CA-0MvrvWAU", "-80I7UZL3hk", "hJ3wG8PVhPw", "HzeBu2mVff4"] 05:16:48.409 [debug] QUERY OK source="media_items" db=1.0ms idle=198.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] 05:16:48.413 [debug] QUERY OK source="tasks" db=0.3ms idle=200.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189085, 1301334, ~U[2026-03-01 11:16:48Z], ~U[2026-03-01 11:16:48Z]] 05:16:48.417 [debug] QUERY OK source="tasks" db=0.4ms idle=4.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189086, 1301335, ~U[2026-03-01 11:16:48Z], ~U[2026-03-01 11:16:48Z]] 05:16:48.422 [info] {"args":{"id":1301334},"id":189085,"meta":{},"system_time":1772363808422306559,"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"]} 05:16:48.422 [info] {"args":{"id":1301335},"id":189086,"meta":{},"system_time":1772363808422385474,"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"]} 05:16:48.423 [debug] QUERY OK source="media_items" db=0.6ms idle=5.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1301335] 05:16:48.423 [debug] QUERY OK source="media_items" db=0.8ms idle=5.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1301334] 05:16:48.423 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:16:48.423 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:16:48.424 [debug] QUERY OK source="tasks" db=0.8ms idle=1.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189087, 1301347, ~U[2026-03-01 11:16:48Z], ~U[2026-03-01 11:16:48Z]] 05:16:48.425 [debug] QUERY OK source="sources" db=1.2ms idle=1.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 05:16:48.425 [debug] QUERY OK source="sources" db=1.3ms 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] 05:16:48.425 [debug] QUERY OK source="media_profiles" db=0.4ms queue=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] 05:16:48.426 [debug] QUERY OK source="media_profiles" db=0.7ms 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] 05:16:48.427 [debug] QUERY OK source="media_items" db=0.9ms 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 [1301335] 05:16:48.427 [debug] QUERY OK source="media_items" db=0.8ms 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] 05:16:48.429 [debug] QUERY OK source="media_metadata" db=0.3ms 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" = ?) [1301335] 05:16:48.429 [debug] QUERY OK source="media_metadata" db=0.2ms 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" = ?) [1301334] 05:16:48.429 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 05:16:48.430 [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] 05:16:48.430 [debug] QUERY OK source="settings" db=0.3ms 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 [] 05:16:48.430 [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 [] 05:16:48.431 [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 [] 05:16:48.431 [debug] QUERY OK source="tasks" db=0.8ms idle=0.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189088, 1301392, ~U[2026-03-01 11:16:48Z], ~U[2026-03-01 11:16:48Z]] 05:16:48.431 [debug] QUERY OK source="settings" db=0.3ms 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 [] 05:16:48.431 [debug] Running yt-dlp command for action: get_downloadable_status 05:16:48.431 [debug] Running yt-dlp command for action: get_downloadable_status 05:16:48.432 [debug] QUERY OK source="settings" db=0.3ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:16:48.432 [debug] QUERY OK source="settings" db=0.4ms 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 [] 05:16:48.433 [debug] QUERY OK source="settings" db=0.4ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:16:48.433 [debug] QUERY OK source="settings" db=0.3ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:16:48.433 [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 [] 05:16:48.434 [debug] QUERY OK source="settings" db=0.4ms 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 [] 05:16:48.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/d6/f4/d6f45148a98627da4efb3f1935651a740493f636e999900df9796e439b80547a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:16:48.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/53/92/5392c91eb9c885981ffcddab1da59a2dee61790c19728cec07ad4c0b269ef98d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:16:48.436 [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" [189089, 1301393, ~U[2026-03-01 11:16:48Z], ~U[2026-03-01 11:16:48Z]] 05:16:48.440 [debug] QUERY OK source="tasks" db=0.5ms idle=4.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189090, 1301394, ~U[2026-03-01 11:16:48Z], ~U[2026-03-01 11:16:48Z]] 05:16:48.445 [debug] QUERY OK source="tasks" db=1.1ms queue=0.1ms idle=5.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189091, 1301395, ~U[2026-03-01 11:16:48Z], ~U[2026-03-01 11:16:48Z]] 05:16:48.451 [debug] QUERY OK source="tasks" db=0.4ms idle=6.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189092, 1301397, ~U[2026-03-01 11:16:48Z], ~U[2026-03-01 11:16:48Z]] 05:16:48.455 [debug] QUERY OK source="tasks" db=0.4ms idle=5.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189093, 1301398, ~U[2026-03-01 11:16:48Z], ~U[2026-03-01 11:16:48Z]] 05:16:48.459 [debug] QUERY OK source="tasks" db=0.4ms idle=4.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189094, 1301399, ~U[2026-03-01 11:16:48Z], ~U[2026-03-01 11:16:48Z]] 05:16:48.463 [debug] QUERY OK source="tasks" db=0.4ms idle=4.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189095, 1301400, ~U[2026-03-01 11:16:48Z], ~U[2026-03-01 11:16:48Z]] 05:16:48.465 [debug] QUERY OK source="tasks" db=0.4ms idle=2.7ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189096, 52, ~U[2026-03-01 11:16:48Z], ~U[2026-03-01 11:16:48Z]] 05:16:48.466 [info] {"args":{"id":52},"id":189081,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":255588,"event":"job:stop","queue_time":962419,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 05:16:51.273 [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/f4/d6f45148a98627da4efb3f1935651a740493f636e999900df9796e439b80547a.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. 05:16:51.274 [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" 05:16:51.274 [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" 05:16:51.275 [info] {"args":{"id":1301334},"id":189085,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2852102,"event":"job:stop","queue_time":419322,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:16:51.282 [info] {"args":{"id":1301347},"id":189087,"meta":{},"system_time":1772363811282711212,"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"]} 05:16:51.283 [debug] QUERY OK source="media_items" db=0.3ms idle=1768.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] 05:16:51.283 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:16:51.284 [debug] QUERY OK source="sources" db=0.3ms idle=1077.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:16:51.284 [debug] QUERY OK source="media_profiles" db=0.2ms idle=75.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] 05:16:51.285 [debug] QUERY OK source="media_items" db=0.4ms 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 [1301347] 05:16:51.287 [debug] QUERY OK source="media_metadata" db=0.1ms 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" = ?) [1301347] 05:16:51.287 [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] 05:16:51.288 [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 [] 05:16:51.288 [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 [] 05:16:51.289 [debug] Running yt-dlp command for action: get_downloadable_status 05:16:51.290 [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 [] 05:16:51.290 [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 [] 05:16:51.290 [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 [] 05:16:51.291 [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/1a/f6/1af6848b7e5b7dde9f7f545bc1a1370560cff2edf566b6becce4a0ebcbe867dc.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:16:51.372 [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/53/92/5392c91eb9c885981ffcddab1da59a2dee61790c19728cec07ad4c0b269ef98d.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. 05:16:51.372 [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" 05:16:51.372 [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" 05:16:51.373 [info] {"args":{"id":1301335},"id":189086,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2950556,"event":"job:stop","queue_time":419322,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:16:51.380 [info] {"args":{"id":1301392},"id":189088,"meta":{},"system_time":1772363811380447293,"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"]} 05:16:51.381 [debug] QUERY OK source="media_items" db=0.3ms idle=90.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" = ?) [1301392] 05:16:51.381 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:16:51.382 [debug] QUERY OK source="sources" db=0.4ms idle=91.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:16:51.382 [debug] QUERY OK source="media_profiles" db=0.3ms idle=91.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] 05:16:51.383 [debug] QUERY OK source="media_items" db=0.4ms idle=9.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1301392] 05:16:51.384 [debug] QUERY OK source="media_metadata" db=0.1ms idle=3.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [1301392] 05:16:51.384 [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] 05:16:51.385 [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 [] 05:16:51.385 [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 [] 05:16:51.385 [debug] Running yt-dlp command for action: get_downloadable_status 05:16:51.386 [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 [] 05:16:51.387 [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 [] 05:16:51.387 [debug] QUERY OK source="settings" db=0.2ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:16:51.387 [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/ac/13/ac1390d02454af002cbd2a84964d17400993050cddb776434c44a2c713e8145e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:16:54.086 [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/1a/f6/1af6848b7e5b7dde9f7f545bc1a1370560cff2edf566b6becce4a0ebcbe867dc.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. 05:16:54.086 [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" 05:16:54.087 [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" 05:16:54.088 [info] {"args":{"id":1301347},"id":189087,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2804592,"event":"job:stop","queue_time":3281387,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:16:54.095 [info] {"args":{"id":1301393},"id":189089,"meta":{},"system_time":1772363814095713364,"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"]} 05:16:54.096 [debug] QUERY OK source="media_items" db=0.4ms idle=1581.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" = ?) [1301393] 05:16:54.096 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:16:54.097 [debug] QUERY OK source="sources" db=0.3ms idle=1582.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:16:54.097 [debug] QUERY OK source="media_profiles" db=0.3ms idle=884.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] 05:16:54.098 [debug] QUERY OK source="media_items" db=0.5ms 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 [1301393] 05:16:54.100 [debug] QUERY OK source="media_metadata" db=0.1ms idle=4.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] 05:16:54.100 [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] 05:16:54.101 [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 [] 05:16:54.101 [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 [] 05:16:54.102 [debug] Running yt-dlp command for action: get_downloadable_status 05:16:54.102 [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 [] 05:16:54.102 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:16:54.103 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:16:54.103 [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/70/1e/701ee49de6bf4f383ae1e2435fca955b206a1d6a76bc8f20eddf963ce6aabd7c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:16:54.298 [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/ac/13/ac1390d02454af002cbd2a84964d17400993050cddb776434c44a2c713e8145e.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. 05:16:54.298 [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" 05:16:54.298 [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" 05:16:54.299 [info] {"args":{"id":1301392},"id":189088,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2918547,"event":"job:stop","queue_time":3379325,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:16:54.307 [info] {"args":{"id":1301394},"id":189090,"meta":{},"system_time":1772363814306906476,"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"]} 05:16:54.307 [debug] QUERY OK source="media_items" db=0.5ms idle=204.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" = ?) [1301394] 05:16:54.308 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:16:54.309 [debug] QUERY OK source="sources" db=0.5ms idle=205.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:16:54.309 [debug] QUERY OK source="media_profiles" db=0.3ms idle=92.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] 05:16:54.310 [debug] QUERY OK source="media_items" db=0.5ms idle=10.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] 05:16:54.313 [debug] QUERY OK source="media_metadata" db=1.0ms idle=5.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] 05:16:54.314 [debug] QUERY OK source="media_profiles" db=0.3ms idle=6.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:16:54.315 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:16:54.315 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:16:54.316 [debug] Running yt-dlp command for action: get_downloadable_status 05:16:54.317 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:16:54.317 [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 [] 05:16:54.318 [debug] QUERY OK source="settings" db=0.2ms idle=3.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:16:54.318 [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/ef/efefc1e0d4621a19cdeea368f95535a9d356d8abd3b007edc46484895f42df00.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:16:57.026 [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/70/1e/701ee49de6bf4f383ae1e2435fca955b206a1d6a76bc8f20eddf963ce6aabd7c.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. 05:16:57.026 [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" 05:16:57.026 [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" 05:16:57.027 [info] {"args":{"id":1301393},"id":189089,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2930860,"event":"job:stop","queue_time":6094357,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:16:57.034 [info] {"args":{"id":1301395},"id":189091,"meta":{},"system_time":1772363817034431697,"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"]} 05:16:57.035 [debug] QUERY OK source="media_items" db=0.3ms idle=1520.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] 05:16:57.035 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:16:57.036 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1520.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] 05:16:57.036 [debug] QUERY OK source="media_profiles" db=0.3ms idle=814.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] 05:16:57.037 [debug] QUERY OK source="media_items" db=0.4ms idle=9.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1301395] 05:16:57.038 [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" = ?) [1301395] 05:16:57.038 [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] 05:16:57.038 [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 [] 05:16:57.039 [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 [] 05:16:57.039 [debug] Running yt-dlp command for action: get_downloadable_status 05:16:57.040 [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 [] 05:16:57.041 [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 [] 05:16:57.041 [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 [] 05:16:57.041 [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/cf/22/cf22104101a063249a5f37f350b5ca2bc37d385971ff54e975f4cab8a977044d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:16:57.521 [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/ef/efefc1e0d4621a19cdeea368f95535a9d356d8abd3b007edc46484895f42df00.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. 05:16:57.521 [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" 05:16:57.521 [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" 05:16:57.522 [info] {"args":{"id":1301394},"id":189090,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3215011,"event":"job:stop","queue_time":6305332,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:16:57.529 [info] {"args":{"id":1301397},"id":189092,"meta":{},"system_time":1772363817529570432,"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"]} 05:16:57.530 [debug] QUERY OK source="media_items" db=0.4ms idle=488.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" = ?) [1301397] 05:16:57.530 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:16:57.531 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=489.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:16:57.532 [debug] QUERY OK source="media_profiles" db=0.4ms idle=307.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] 05:16:57.533 [debug] QUERY OK source="media_items" db=0.6ms idle=10.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] 05:16:57.536 [debug] QUERY OK source="media_metadata" db=0.2ms idle=6.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" = ?) [1301397] 05:16:57.536 [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] 05:16:57.537 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:16:57.537 [debug] QUERY OK source="settings" db=0.3ms 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 [] 05:16:57.538 [debug] Running yt-dlp command for action: get_downloadable_status 05:16:57.539 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:16:57.539 [debug] QUERY OK source="settings" db=0.2ms idle=3.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:16:57.540 [debug] QUERY OK source="settings" db=0.2ms idle=3.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:16:57.540 [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/5d/9d/5d9ddc45916f1c85bd8ad1b202a054f6b52378527ecb5a2934ab6ad6289bf9de.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:17:00.082 [info] {"source":"oban","duration":245,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:17:00.125 [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/cf/22/cf22104101a063249a5f37f350b5ca2bc37d385971ff54e975f4cab8a977044d.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. 05:17:00.125 [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" 05:17:00.125 [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" 05:17:00.126 [info] {"args":{"id":1301395},"id":189091,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3091230,"event":"job:stop","queue_time":9033339,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:17:00.133 [info] {"args":{"id":1301398},"id":189093,"meta":{},"system_time":1772363820133726126,"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"]} 05:17:00.134 [debug] QUERY OK source="media_items" db=0.4ms idle=619.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] 05:17:00.134 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:17:00.135 [debug] QUERY OK source="sources" db=0.4ms idle=620.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:17:00.136 [debug] QUERY OK source="media_profiles" db=0.4ms idle=53.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] 05:17:00.137 [debug] QUERY OK source="media_items" db=0.4ms 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 [1301398] 05:17:00.139 [debug] QUERY OK source="media_metadata" db=0.2ms idle=5.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" = ?) [1301398] 05:17:00.139 [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] 05:17:00.140 [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 [] 05:17:00.140 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:17:00.140 [debug] Running yt-dlp command for action: get_downloadable_status 05:17:00.141 [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 [] 05:17:00.141 [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 [] 05:17:00.142 [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 [] 05:17:00.142 [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/53/b7/53b71a045063aa947ab78ecceb793658b4fe22e23cdaae3c5afd6b2f1f784197.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:17:00.796 [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/5d/9d/5d9ddc45916f1c85bd8ad1b202a054f6b52378527ecb5a2934ab6ad6289bf9de.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. 05:17:00.796 [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" 05:17:00.797 [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" 05:17:00.798 [info] {"args":{"id":1301397},"id":189092,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3267723,"event":"job:stop","queue_time":9528330,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:17:00.805 [info] {"args":{"id":1301399},"id":189094,"meta":{},"system_time":1772363820805788948,"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"]} 05:17:00.806 [debug] QUERY OK source="media_items" db=0.4ms idle=664.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] 05:17:00.806 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:17:00.807 [debug] QUERY OK source="sources" db=0.3ms idle=664.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:17:00.808 [debug] QUERY OK source="media_profiles" db=0.3ms idle=577.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] 05:17:00.809 [debug] QUERY OK source="media_items" db=0.4ms idle=10.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] 05:17:00.810 [debug] QUERY OK source="media_metadata" db=0.2ms 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" = ?) [1301399] 05:17:00.810 [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] 05:17:00.811 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:17:00.811 [debug] QUERY OK source="settings" db=0.1ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:17:00.812 [debug] Running yt-dlp command for action: get_downloadable_status 05:17:00.813 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:17:00.814 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:17:00.814 [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 [] 05:17:00.814 [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/95/bd/95bdaef16fba7565f2507b57338c6b83c5a30c69d4f081699604844fd2203b20.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:17:03.257 [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/53/b7/53b71a045063aa947ab78ecceb793658b4fe22e23cdaae3c5afd6b2f1f784197.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. 05:17:03.257 [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" 05:17:03.257 [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" 05:17:03.258 [info] {"args":{"id":1301398},"id":189093,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3124211,"event":"job:stop","queue_time":12132363,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:17:03.265 [info] {"args":{"id":1301400},"id":189095,"meta":{},"system_time":1772363823265586411,"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"]} 05:17:03.266 [debug] QUERY OK source="media_items" db=0.4ms idle=751.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" = ?) [1301400] 05:17:03.266 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:17:03.267 [debug] QUERY OK source="sources" db=0.3ms idle=752.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:17:03.268 [debug] QUERY OK source="media_profiles" db=0.4ms idle=29.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] 05:17:03.269 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=9.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 [1301400] 05:17:03.271 [debug] QUERY OK source="media_metadata" db=0.1ms idle=5.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] 05:17:03.271 [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] 05:17:03.272 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:17:03.272 [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 [] 05:17:03.272 [debug] Running yt-dlp command for action: get_downloadable_status 05:17:03.273 [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 [] 05:17:03.274 [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 [] 05:17:03.274 [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 [] 05:17:03.274 [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/b4/88/b488c178580bd8b888000916b3db1cbfd835984fcdaff075bc90657e2ba96bb7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:17:04.002 [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/95/bd/95bdaef16fba7565f2507b57338c6b83c5a30c69d4f081699604844fd2203b20.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. 05:17:04.002 [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" 05:17:04.003 [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" 05:17:04.004 [info] {"args":{"id":1301399},"id":189094,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3197363,"event":"job:stop","queue_time":12804329,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:17:06.466 [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/b4/88/b488c178580bd8b888000916b3db1cbfd835984fcdaff075bc90657e2ba96bb7.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. 05:17:06.466 [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" 05:17:06.466 [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" 05:17:06.467 [info] {"args":{"id":1301400},"id":189095,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3201215,"event":"job:stop","queue_time":15264340,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:17:10.262 [info] {"source":"oban","duration":13812,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:17:26.302 [info] {"args":{"id":382016},"id":188908,"meta":{},"system_time":1772363846302792373,"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"]} 05:17:26.303 [debug] QUERY OK source="media_items" db=0.3ms idle=788.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" = ?) [382016] 05:17:26.303 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:17:26.304 [debug] QUERY OK source="sources" db=0.2ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 05:17:26.304 [debug] QUERY OK source="media_profiles" db=0.2ms idle=789.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] 05:17:26.306 [debug] QUERY OK source="media_items" db=1.0ms 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 [382016] 05:17:26.308 [debug] QUERY OK source="media_metadata" db=0.3ms idle=5.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" = ?) [382016] 05:17:26.308 [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] 05:17:26.309 [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 [] 05:17:26.309 [debug] QUERY OK source="settings" db=0.3ms 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 [] 05:17:26.309 [debug] Running yt-dlp command for action: get_downloadable_status 05:17:26.310 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:17:26.311 [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 [] 05:17:26.311 [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 [] 05:17:26.311 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OeqCrrIjerg --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f6/a1/f6a1b9b46afa67288c7e1c13ea6faf71f716b9f26bfe30f84f6eaa10f09fb1cc.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:17:29.155 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OeqCrrIjerg --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f6/a1/f6a1b9b46afa67288c7e1c13ea6faf71f716b9f26bfe30f84f6eaa10f09fb1cc.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] OeqCrrIjerg: Join this channel to get access to members-only content like this video, and other exclusive perks. 05:17:29.156 [error] yt-dlp download error for media item #382016: "ERROR: [youtube] OeqCrrIjerg: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 05:17:29.156 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":382016},"id":188908,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2853376,"event":"job:exception","queue_time":844462,"attempt":14,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:17:40.278 [info] {"source":"oban","duration":15073,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:18:00.083 [info] {"source":"oban","duration":344,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:18:10.297 [info] {"source":"oban","duration":18453,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:18:40.319 [info] {"source":"oban","duration":20721,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":2} 05:19:00.085 [info] {"source":"oban","duration":446,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:19:10.333 [info] {"source":"oban","duration":14514,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 05:19:40.354 [info] {"source":"oban","duration":19837,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:20:00.086 [info] {"source":"oban","duration":383,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:20:06.675 [info] {"args":{"id":1468777},"id":188913,"meta":{},"system_time":1772364006674486024,"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"]} 05:20:06.678 [debug] QUERY OK source="media_items" db=1.8ms queue=0.1ms idle=1161.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" = ?) [1468777] 05:20:06.679 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:20:06.682 [debug] QUERY OK source="sources" db=1.8ms queue=0.1ms idle=1164.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] 05:20:06.690 [debug] QUERY OK source="media_profiles" db=6.1ms queue=0.3ms idle=1031.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] 05:20:06.695 [debug] QUERY OK source="media_items" db=2.7ms queue=0.3ms idle=31.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 [1468777] 05:20:06.703 [debug] QUERY OK source="media_metadata" db=0.7ms queue=0.1ms idle=28.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" = ?) [1468777] 05:20:06.705 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms idle=25.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] 05:20:06.710 [debug] QUERY OK source="settings" db=1.6ms queue=0.1ms idle=25.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:20:06.711 [debug] QUERY OK source="settings" db=0.8ms queue=0.1ms idle=20.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:20:06.714 [debug] Running yt-dlp command for action: get_downloadable_status 05:20:06.717 [debug] QUERY OK source="settings" db=0.9ms queue=0.1ms idle=21.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:20:06.719 [debug] QUERY OK source="settings" db=1.4ms idle=15.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:20:06.721 [debug] QUERY OK source="settings" db=0.7ms queue=0.2ms idle=15.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:20:06.722 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=PEPJfIWbE2A --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/93/3e/933e5c154ef279c7945f16108fae130b89e1ddac8144ca69cccc09a6f1cb6fbd.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:20:10.377 [info] {"source":"oban","duration":21900,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:20:12.346 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=PEPJfIWbE2A --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/93/3e/933e5c154ef279c7945f16108fae130b89e1ddac8144ca69cccc09a6f1cb6fbd.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] PEPJfIWbE2A: Join this channel to get access to members-only content like this video, and other exclusive perks. 05:20:12.347 [error] yt-dlp download error for media item #1468777: "ERROR: [youtube] PEPJfIWbE2A: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 05:20:12.350 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1468777},"id":188913,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5673418,"event":"job:exception","queue_time":285341,"attempt":14,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:20:40.396 [info] {"source":"oban","duration":17885,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:21:00.086 [info] {"source":"oban","duration":320,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:21:09.816 [info] {"args":{"id":51},"id":189084,"meta":{},"system_time":1772364069816473344,"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"]} 05:21:09.817 [debug] QUERY OK source="sources" db=0.5ms idle=302.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" = ?) [51] 05:21:09.818 [debug] QUERY OK source="settings" db=0.4ms idle=303.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:21:09.820 [debug] QUERY OK source="media_profiles" db=1.1ms idle=304.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] 05:21:09.821 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=11.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:21:09.821 [debug] Fetching recent media IDs from YouTube RSS feed for source: UCUMwY9iS8oMyWDYIe6_RmoA 05:21:10.105 [debug] Media ids fetched from RSS: ["WxN9VzwoGGw", "9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI"] 05:21:10.108 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=290.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 (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [51, "WxN9VzwoGGw", "9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI"] 05:21:10.112 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=292.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")))) [51] 05:21:10.116 [debug] QUERY OK source="tasks" db=0.6ms queue=0.1ms idle=294.4ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189097, 51, ~U[2026-03-01 11:21:10Z], ~U[2026-03-01 11:21:10Z]] 05:21:10.117 [info] {"args":{"id":51},"id":189084,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":300039,"event":"job:stop","queue_time":919060,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 05:21:10.427 [info] {"source":"oban","duration":30278,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:21:40.450 [info] {"source":"oban","duration":22417,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:22:00.087 [info] {"source":"oban","duration":485,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:22:07.966 [info] {"args":{"id":26},"id":187392,"meta":{},"system_time":1772364127965970572,"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"]} 05:22:07.967 [debug] QUERY OK source="sources" db=0.6ms idle=451.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:22:07.967 [debug] QUERY OK source="settings" db=0.5ms idle=452.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:22:07.969 [debug] QUERY OK source="media_items" db=1.3ms idle=453.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")))) [26] 05:22:07.971 [debug] QUERY OK source="media_items" db=1.3ms idle=11.0ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [26] 05:22:07.971 [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] 05:22:07.972 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:22:07.972 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:22:07.974 [debug] QUERY OK source="media_items" db=0.4ms idle=4.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [26] 05:22:07.975 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 05:22:07.976 [debug] Current batch of media processed. Will check again in 1000ms 05:22:07.976 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:22:07.976 [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 [] 05:22:07.977 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:22:07.977 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCaSCt8s_4nfkRglWCvNSDrg --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/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/ea/8feaeb86ec2a172c22615e972f964691778fbf8eb783c055f65c2889b2b320f7.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/d3/2d/d32dd5b58444647515acfbc0e2b84ec11859c06abdcbb0eb9220ca47f90f06ed.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:22:08.976 [debug] Current batch of media processed. Will check again in 1000ms 05:22:09.977 [debug] Current batch of media processed. Will check again in 1000ms 05:22:10.481 [info] {"source":"oban","duration":30249,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:22:10.978 [debug] Current batch of media processed. Will check again in 1000ms 05:22:11.979 [debug] Current batch of media processed. Will check again in 1000ms 05:22:12.980 [debug] Current batch of media processed. Will check again in 1000ms 05:22:13.981 [debug] Current batch of media processed. Will check again in 1000ms 05:22:14.982 [debug] Current batch of media processed. Will check again in 1000ms 05:22:15.983 [debug] Current batch of media processed. Will check again in 1000ms 05:22:16.984 [debug] Current batch of media processed. Will check again in 1000ms 05:22:17.986 [debug] Current batch of media processed. Will check again in 1000ms 05:22:18.988 [debug] Current batch of media processed. Will check again in 1000ms 05:22:19.989 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Access experiments at CodeAesthetic.io\n\nDiscord, deleted scenes, song names and more at patreon.com/CodeAesthetic", "duration" => 1010, "filename" => "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2023/s2023e122300_Dear Functional Bros.mp4", "id" => "nuML9SmdbJ4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=nuML9SmdbJ4", "playlist_index" => 1, "timestamp" => 1703350839, "title" => "Dear Functional Bros", "upload_date" => "20231223"} 05:22:19.990 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=475.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [26] 05:22:19.991 [debug] QUERY OK source="sources" db=0.4ms idle=476.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:22:19.992 [debug] QUERY OK source="media_items" db=0.3ms idle=477.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-12-23 17:00:39Z], 26] 05:22:19.997 [debug] QUERY OK source="media_items" db=4.1ms idle=478.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" ["Access experiments at CodeAesthetic.io\n\nDiscord, deleted scenes, song names and more at patreon.com/CodeAesthetic", "Dear Functional Bros", "e894eb2e-d89d-47d5-9805-5a3124d1c74e", "nuML9SmdbJ4", 1010, false, "https://www.youtube.com/watch?v=nuML9SmdbJ4", 1, "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2023/s2023e122300_Dear Functional Bros.mp4", false, false, false, 26, [], 98, ~U[2023-12-23 17:00:39Z], ~U[2026-03-01 11:22:19Z], ~U[2026-03-01 11:22:19Z], "Access experiments at CodeAesthetic.io\n\nDiscord, deleted scenes, song names and more at patreon.com/CodeAesthetic", "Dear Functional Bros", "nuML9SmdbJ4", 1010, false, "https://www.youtube.com/watch?v=nuML9SmdbJ4", "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2023/s2023e122300_Dear Functional Bros.mp4", false, 26, ~U[2023-12-23 17:00:39Z]] 05:22:19.998 [debug] QUERY OK source="sources" db=0.4ms idle=8.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:22:19.999 [debug] QUERY OK source="media_profiles" db=1.3ms queue=0.1ms 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] 05:22:20.000 [debug] QUERY OK source="media_items" db=0.5ms 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 [327249] 05:22:20.001 [debug] Current batch of media processed. Will check again in 1000ms 05:22:21.001 [debug] Current batch of media processed. Will check again in 1000ms 05:22:22.002 [debug] Current batch of media processed. Will check again in 1000ms 05:22:23.003 [debug] Current batch of media processed. Will check again in 1000ms 05:22:24.004 [debug] Current batch of media processed. Will check again in 1000ms 05:22:25.005 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Try using the attachment service at https://www.patreon.com/codeaesthetic\n\nYou'll also find deleted scenes, song names and more", "duration" => 795, "filename" => "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2023/s2023e080400_Dependency Injection, The Best Pattern.mp4", "id" => "J1f5b4vcxCQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=J1f5b4vcxCQ", "playlist_index" => 2, "timestamp" => 1691161213, "title" => "Dependency Injection, The Best Pattern", "upload_date" => "20230804"} 05:22:25.006 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1491.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [26] 05:22:25.007 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1492.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:22:25.008 [debug] QUERY OK source="media_items" db=0.2ms idle=1493.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-08-04 15:00:13Z], 26] 05:22:25.011 [debug] QUERY OK source="media_items" db=2.4ms idle=1011.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 using the attachment service at https://www.patreon.com/codeaesthetic\n\nYou'll also find deleted scenes, song names and more", "Dependency Injection, The Best Pattern", "0cc391f9-aafd-493c-b221-b776d5a1c4b0", "J1f5b4vcxCQ", 795, false, "https://www.youtube.com/watch?v=J1f5b4vcxCQ", 2, "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2023/s2023e080400_Dependency Injection, The Best Pattern.mp4", false, false, false, 26, [], 98, ~U[2023-08-04 15:00:13Z], ~U[2026-03-01 11:22:25Z], ~U[2026-03-01 11:22:25Z], "Try using the attachment service at https://www.patreon.com/codeaesthetic\n\nYou'll also find deleted scenes, song names and more", "Dependency Injection, The Best Pattern", "J1f5b4vcxCQ", 795, false, "https://www.youtube.com/watch?v=J1f5b4vcxCQ", "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2023/s2023e080400_Dependency Injection, The Best Pattern.mp4", false, 26, ~U[2023-08-04 15:00:13Z]] 05:22:25.012 [debug] QUERY OK source="sources" db=0.5ms idle=11.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [26] 05:22:25.013 [debug] QUERY OK source="media_profiles" db=0.4ms idle=6.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:22:25.014 [debug] QUERY OK source="media_items" db=0.7ms 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 [327250] 05:22:25.014 [debug] Current batch of media processed. Will check again in 1000ms 05:22:26.015 [debug] Current batch of media processed. Will check again in 1000ms 05:22:27.016 [debug] Current batch of media processed. Will check again in 1000ms 05:22:28.017 [debug] Current batch of media processed. Will check again in 1000ms 05:22:29.018 [debug] Current batch of media processed. Will check again in 1000ms 05:22:30.019 [debug] Current batch of media processed. Will check again in 1000ms 05:22:31.020 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "When should you optimize your code?\n\nAccess to code examples, deleted scenes, song names and more at https://www.patreon.com/codeaesthetic", "duration" => 759, "filename" => "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2023/s2023e021000_Premature Optimization.mp4", "id" => "tKbV6BpH-C8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tKbV6BpH-C8", "playlist_index" => 3, "timestamp" => 1676044835, "title" => "Premature Optimization", "upload_date" => "20230210"} 05:22:31.021 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=506.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [26] 05:22:31.022 [debug] QUERY OK source="sources" db=0.3ms idle=507.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:22:31.023 [debug] QUERY OK source="media_items" db=0.3ms idle=508.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-02-10 16:00:35Z], 26] 05:22:31.026 [debug] QUERY OK source="media_items" db=2.7ms idle=508.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" ["When should you optimize your code?\n\nAccess to code examples, deleted scenes, song names and more at https://www.patreon.com/codeaesthetic", "Premature Optimization", "e59fb58a-2de4-4947-9e3b-60c82a3e9a50", "tKbV6BpH-C8", 759, false, "https://www.youtube.com/watch?v=tKbV6BpH-C8", 3, "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2023/s2023e021000_Premature Optimization.mp4", false, false, false, 26, [], 98, ~U[2023-02-10 16:00:35Z], ~U[2026-03-01 11:22:31Z], ~U[2026-03-01 11:22:31Z], "When should you optimize your code?\n\nAccess to code examples, deleted scenes, song names and more at https://www.patreon.com/codeaesthetic", "Premature Optimization", "tKbV6BpH-C8", 759, false, "https://www.youtube.com/watch?v=tKbV6BpH-C8", "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2023/s2023e021000_Premature Optimization.mp4", false, 26, ~U[2023-02-10 16:00:35Z]] 05:22:31.027 [debug] QUERY OK source="sources" db=0.5ms idle=13.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:22:31.028 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 05:22:31.029 [debug] QUERY OK source="media_items" db=0.7ms 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 [327251] 05:22:31.029 [debug] Current batch of media processed. Will check again in 1000ms 05:22:32.030 [debug] Current batch of media processed. Will check again in 1000ms 05:22:33.031 [debug] Current batch of media processed. Will check again in 1000ms 05:22:34.032 [debug] Current batch of media processed. Will check again in 1000ms 05:22:35.033 [debug] Current batch of media processed. Will check again in 1000ms 05:22:36.034 [debug] Current batch of media processed. Will check again in 1000ms 05:22:37.035 [debug] Current batch of media processed. Will check again in 1000ms 05:22:38.036 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Why you shouldn't write comments in your code (write documentation)\n\nAccess to code examples, discord, song names and more at https://www.patreon.com/codeaesthetic\n\nReferences:\n\nhttps://www.commitstrip.com/en/2016/08/25/a-very-comprehensive-and-precise-spec/?", "duration" => 355, "filename" => "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2023/s2023e011600_Don't Write Comments.mp4", "id" => "Bf7vDBBOBUA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Bf7vDBBOBUA", "playlist_index" => 4, "timestamp" => 1673872204, "title" => "Don't Write Comments", "upload_date" => "20230116"} 05:22:38.037 [debug] QUERY OK source="sources" db=0.2ms idle=1522.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [26] 05:22:38.038 [debug] QUERY OK source="sources" db=0.3ms idle=1522.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" = ?) [26] 05:22:38.038 [debug] QUERY OK source="media_items" db=0.3ms idle=1523.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-01-16 12:30:04Z], 26] 05:22:38.043 [debug] QUERY OK source="media_items" db=4.5ms idle=1010.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" ["Why you shouldn't write comments in your code (write documentation)\n\nAccess to code examples, discord, song names and more at https://www.patreon.com/codeaesthetic\n\nReferences:\n\nhttps://www.commitstrip.com/en/2016/08/25/a-very-comprehensive-and-precise-spec/?", "Don't Write Comments", "9ea7a872-67a7-46e1-9661-6ac8cbce2d4e", "Bf7vDBBOBUA", 355, false, "https://www.youtube.com/watch?v=Bf7vDBBOBUA", 4, "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2023/s2023e011600_Don't Write Comments.mp4", false, false, false, 26, [], 98, ~U[2023-01-16 12:30:04Z], ~U[2026-03-01 11:22:38Z], ~U[2026-03-01 11:22:38Z], "Why you shouldn't write comments in your code (write documentation)\n\nAccess to code examples, discord, song names and more at https://www.patreon.com/codeaesthetic\n\nReferences:\n\nhttps://www.commitstrip.com/en/2016/08/25/a-very-comprehensive-and-precise-spec/?", "Don't Write Comments", "Bf7vDBBOBUA", 355, false, "https://www.youtube.com/watch?v=Bf7vDBBOBUA", "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2023/s2023e011600_Don't Write Comments.mp4", false, 26, ~U[2023-01-16 12:30:04Z]] 05:22:38.044 [debug] QUERY OK source="sources" db=0.3ms idle=13.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:22:38.045 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:22:38.046 [debug] QUERY OK source="media_items" db=0.4ms 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 [327252] 05:22:38.046 [debug] Current batch of media processed. Will check again in 1000ms 05:22:39.046 [debug] Current batch of media processed. Will check again in 1000ms 05:22:40.047 [debug] Current batch of media processed. Will check again in 1000ms 05:22:40.505 [info] {"source":"oban","duration":23419,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":2} 05:22:41.048 [debug] Current batch of media processed. Will check again in 1000ms 05:22:42.049 [debug] Current batch of media processed. Will check again in 1000ms 05:22:43.050 [debug] Current batch of media processed. Will check again in 1000ms 05:22:44.051 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Let's discuss the tradeoffs between Inheritance and Composition \n\nAccess to code examples, discord, song names and more at https://www.patreon.com/codeaesthetic\n\n0:00 Introduction\n0:25 Inheritance\n3:32 Composition\n5:22 Abstracting with Inheritance\n6:52 Abstracting with Interfaces\n8:20 When to use Inheritance", "duration" => 600, "filename" => "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2022/s2022e122200_The Flaws of Inheritance.mp4", "id" => "hxGOiiR9ZKg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=hxGOiiR9ZKg", "playlist_index" => 5, "timestamp" => 1671717863, "title" => "The Flaws of Inheritance", "upload_date" => "20221222"} 05:22:44.052 [debug] QUERY OK source="sources" db=0.3ms idle=537.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 (?)) [26] 05:22:44.053 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=538.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [26] 05:22:44.054 [debug] QUERY OK source="media_items" db=0.3ms idle=539.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-12-22 14:04:23Z], 26] 05:22:44.057 [debug] QUERY OK source="media_items" db=2.3ms idle=540.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" ["Let's discuss the tradeoffs between Inheritance and Composition \n\nAccess to code examples, discord, song names and more at https://www.patreon.com/codeaesthetic\n\n0:00 Introduction\n0:25 Inheritance\n3:32 Composition\n5:22 Abstracting with Inheritance\n6:52 Abstracting with Interfaces\n8:20 When to use Inheritance", "The Flaws of Inheritance", "b6152afa-255a-4927-8832-0ac20440feac", "hxGOiiR9ZKg", 600, false, "https://www.youtube.com/watch?v=hxGOiiR9ZKg", 5, "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2022/s2022e122200_The Flaws of Inheritance.mp4", false, false, false, 26, [], 98, ~U[2022-12-22 14:04:23Z], ~U[2026-03-01 11:22:44Z], ~U[2026-03-01 11:22:44Z], "Let's discuss the tradeoffs between Inheritance and Composition \n\nAccess to code examples, discord, song names and more at https://www.patreon.com/codeaesthetic\n\n0:00 Introduction\n0:25 Inheritance\n3:32 Composition\n5:22 Abstracting with Inheritance\n6:52 Abstracting with Interfaces\n8:20 When to use Inheritance", "The Flaws of Inheritance", "hxGOiiR9ZKg", 600, false, "https://www.youtube.com/watch?v=hxGOiiR9ZKg", "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2022/s2022e122200_The Flaws of Inheritance.mp4", false, 26, ~U[2022-12-22 14:04:23Z]] 05:22:44.058 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=12.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" = ?) [26] 05:22:44.059 [debug] QUERY OK source="media_profiles" db=0.3ms queue=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] 05:22:44.060 [debug] QUERY OK source="media_items" db=0.4ms idle=6.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [327253] 05:22:44.060 [debug] Current batch of media processed. Will check again in 1000ms 05:22:45.061 [debug] Current batch of media processed. Will check again in 1000ms 05:22:46.062 [debug] Current batch of media processed. Will check again in 1000ms 05:22:47.063 [debug] Current batch of media processed. Will check again in 1000ms 05:22:48.064 [debug] Current batch of media processed. Will check again in 1000ms 05:22:49.065 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I'm a Never Nester and you should too. \n\nAccess to code examples, discord, song names and more at https://www.patreon.com/codeaesthetic\n\nCorrection: At 2:20 the inversion should be \"less than or equal\", not \"less than\"", "duration" => 509, "filename" => "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2022/s2022e120600_Why You Shouldn't Nest Your Code.mp4", "id" => "CFRhGnuXG-4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=CFRhGnuXG-4", "playlist_index" => 6, "timestamp" => 1670342411, "title" => "Why You Shouldn't Nest Your Code", "upload_date" => "20221206"} 05:22:49.066 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1551.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 (?)) [26] 05:22:49.067 [debug] QUERY OK source="sources" db=0.2ms idle=1552.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:22:49.067 [debug] QUERY OK source="media_items" db=0.3ms idle=1552.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-12-06 16:00:11Z], 26] 05:22:49.070 [debug] QUERY OK source="media_items" db=2.3ms idle=1011.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'm a Never Nester and you should too. \n\nAccess to code examples, discord, song names and more at https://www.patreon.com/codeaesthetic\n\nCorrection: At 2:20 the inversion should be \"less than or equal\", not \"less than\"", "Why You Shouldn't Nest Your Code", "c4ce4ed4-de24-4984-bc9d-5937ad7853ad", "CFRhGnuXG-4", 509, false, "https://www.youtube.com/watch?v=CFRhGnuXG-4", 6, "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2022/s2022e120600_Why You Shouldn't Nest Your Code.mp4", false, false, false, 26, [], 98, ~U[2022-12-06 16:00:11Z], ~U[2026-03-01 11:22:49Z], ~U[2026-03-01 11:22:49Z], "I'm a Never Nester and you should too. \n\nAccess to code examples, discord, song names and more at https://www.patreon.com/codeaesthetic\n\nCorrection: At 2:20 the inversion should be \"less than or equal\", not \"less than\"", "Why You Shouldn't Nest Your Code", "CFRhGnuXG-4", 509, false, "https://www.youtube.com/watch?v=CFRhGnuXG-4", "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2022/s2022e120600_Why You Shouldn't Nest Your Code.mp4", false, 26, ~U[2022-12-06 16:00:11Z]] 05:22:49.071 [debug] QUERY OK source="sources" db=0.5ms queue=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [26] 05:22:49.072 [debug] QUERY OK source="media_profiles" db=0.3ms queue=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] 05:22:49.073 [debug] QUERY OK source="media_items" db=0.4ms idle=5.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [327254] 05:22:49.073 [debug] Current batch of media processed. Will check again in 1000ms 05:22:50.074 [debug] Current batch of media processed. Will check again in 1000ms 05:22:51.075 [debug] Current batch of media processed. Will check again in 1000ms 05:22:52.076 [debug] Current batch of media processed. Will check again in 1000ms 05:22:53.077 [debug] Current batch of media processed. Will check again in 1000ms 05:22:54.078 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "It's hard to come up with good names in code, but its also easy to get wrong. By looking at some examples, we can get 80% of the way there. Access to code examples, discord, song names and more at https://www.patreon.com/codeaesthetic\n\n0:00 Introduction\n0:31 Variables with a single letter\n1:08 Never Abbreviate\n2:06 Types in your names\n2:36 Units in your variable names\n3:37 Types in your types\n4:30 Naming a class \"Base\" or \"Abstract\"\n5:45 Don't name code \"Utils\"\n7:09 Conclusion\n \n#softwaredesign #code #programming", "duration" => 444, "filename" => "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2022/s2022e112700_Naming Things in Code.mp4", "id" => "-J3wNP6u5YU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=-J3wNP6u5YU", "playlist_index" => 7, "timestamp" => 1669579373, "title" => "Naming Things in Code", "upload_date" => "20221127"} 05:22:54.079 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1564.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 (?)) [26] 05:22:54.081 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=1565.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" = ?) [26] 05:22:54.082 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=1566.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-11-27 20:02:53Z], 26] 05:22:54.085 [debug] QUERY OK source="media_items" db=2.1ms idle=1015.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" ["It's hard to come up with good names in code, but its also easy to get wrong. By looking at some examples, we can get 80% of the way there. Access to code examples, discord, song names and more at https://www.patreon.com/codeaesthetic\n\n0:00 Introduction\n0:31 Variables with a single letter\n1:08 Never Abbreviate\n2:06 Types in your names\n2:36 Units in your variable names\n3:37 Types in your types\n4:30 Naming a class \"Base\" or \"Abstract\"\n5:45 Don't name code \"Utils\"\n7:09 Conclusion\n \n#softwaredesign #code #programming", "Naming Things in Code", "f7a29a15-d6ab-4bcb-b093-db12ea44e4c5", "-J3wNP6u5YU", 444, false, "https://www.youtube.com/watch?v=-J3wNP6u5YU", 7, "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2022/s2022e112700_Naming Things in Code.mp4", false, false, false, 26, [], 98, ~U[2022-11-27 20:02:53Z], ~U[2026-03-01 11:22:54Z], ~U[2026-03-01 11:22:54Z], "It's hard to come up with good names in code, but its also easy to get wrong. By looking at some examples, we can get 80% of the way there. Access to code examples, discord, song names and more at https://www.patreon.com/codeaesthetic\n\n0:00 Introduction\n0:31 Variables with a single letter\n1:08 Never Abbreviate\n2:06 Types in your names\n2:36 Units in your variable names\n3:37 Types in your types\n4:30 Naming a class \"Base\" or \"Abstract\"\n5:45 Don't name code \"Utils\"\n7:09 Conclusion\n \n#softwaredesign #code #programming", "Naming Things in Code", "-J3wNP6u5YU", 444, false, "https://www.youtube.com/watch?v=-J3wNP6u5YU", "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2022/s2022e112700_Naming Things in Code.mp4", false, 26, ~U[2022-11-27 20:02:53Z]] 05:22:54.085 [debug] QUERY OK source="sources" db=0.5ms idle=15.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:22:54.086 [debug] QUERY OK source="media_profiles" db=0.3ms idle=6.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:22:54.087 [debug] QUERY OK source="media_items" db=0.5ms queue=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 [327255] 05:22:54.088 [debug] Current batch of media processed. Will check again in 1000ms 05:22:55.088 [debug] Current batch of media processed. Will check again in 1000ms 05:22:56.089 [debug] Current batch of media processed. Will check again in 1000ms 05:22:57.090 [debug] Current batch of media processed. Will check again in 1000ms 05:22:58.091 [debug] Current batch of media processed. Will check again in 1000ms 05:22:59.092 [debug] Current batch of media processed. Will check again in 1000ms 05:22:59.659 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCaSCt8s_4nfkRglWCvNSDrg --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/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/ea/8feaeb86ec2a172c22615e972f964691778fbf8eb783c055f65c2889b2b320f7.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/d3/2d/d32dd5b58444647515acfbc0e2b84ec11859c06abdcbb0eb9220ca47f90f06ed.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 05:22:59.660 [debug] Gracefully stopping file follower 05:22:59.662 [debug] QUERY OK source="sources" db=1.1ms idle=576.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [26] 05:22:59.662 [debug] QUERY OK source="sources" db=0.4ms idle=147.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:22:59.663 [debug] QUERY OK source="media_items" db=0.3ms idle=148.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-12-23 17:00:39Z], 26] 05:22:59.666 [debug] QUERY OK source="media_items" db=2.1ms idle=149.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" ["Access experiments at CodeAesthetic.io\n\nDiscord, deleted scenes, song names and more at patreon.com/CodeAesthetic", "Dear Functional Bros", "d7c81832-280f-4dfa-a35b-97af2d08947d", "nuML9SmdbJ4", 1010, false, "https://www.youtube.com/watch?v=nuML9SmdbJ4", 1, "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2023/s2023e122300_Dear Functional Bros.mp4", false, false, false, 26, [], 98, ~U[2023-12-23 17:00:39Z], ~U[2026-03-01 11:22:59Z], ~U[2026-03-01 11:22:59Z], "Access experiments at CodeAesthetic.io\n\nDiscord, deleted scenes, song names and more at patreon.com/CodeAesthetic", "Dear Functional Bros", "nuML9SmdbJ4", 1010, false, "https://www.youtube.com/watch?v=nuML9SmdbJ4", "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2023/s2023e122300_Dear Functional Bros.mp4", false, 26, ~U[2023-12-23 17:00:39Z]] 05:22:59.667 [debug] QUERY OK source="sources" db=0.5ms idle=152.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:22:59.668 [debug] QUERY OK source="media_items" db=0.5ms 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[2023-08-04 15:00:13Z], 26] 05:22:59.671 [debug] QUERY OK source="media_items" db=2.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" ["Try using the attachment service at https://www.patreon.com/codeaesthetic\n\nYou'll also find deleted scenes, song names and more", "Dependency Injection, The Best Pattern", "8fe77968-7def-4add-81a6-a9e7bd9d5c3a", "J1f5b4vcxCQ", 795, false, "https://www.youtube.com/watch?v=J1f5b4vcxCQ", 2, "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2023/s2023e080400_Dependency Injection, The Best Pattern.mp4", false, false, false, 26, [], 98, ~U[2023-08-04 15:00:13Z], ~U[2026-03-01 11:22:59Z], ~U[2026-03-01 11:22:59Z], "Try using the attachment service at https://www.patreon.com/codeaesthetic\n\nYou'll also find deleted scenes, song names and more", "Dependency Injection, The Best Pattern", "J1f5b4vcxCQ", 795, false, "https://www.youtube.com/watch?v=J1f5b4vcxCQ", "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2023/s2023e080400_Dependency Injection, The Best Pattern.mp4", false, 26, ~U[2023-08-04 15:00:13Z]] 05:22:59.672 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [26] 05:22:59.673 [debug] QUERY OK source="media_items" db=0.5ms idle=6.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-02-10 16:00:35Z], 26] 05:22:59.675 [debug] QUERY OK source="media_items" db=1.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" ["When should you optimize your code?\n\nAccess to code examples, deleted scenes, song names and more at https://www.patreon.com/codeaesthetic", "Premature Optimization", "e2dd9b17-9412-463b-906c-ede61dfb0da0", "tKbV6BpH-C8", 759, false, "https://www.youtube.com/watch?v=tKbV6BpH-C8", 3, "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2023/s2023e021000_Premature Optimization.mp4", false, false, false, 26, [], 98, ~U[2023-02-10 16:00:35Z], ~U[2026-03-01 11:22:59Z], ~U[2026-03-01 11:22:59Z], "When should you optimize your code?\n\nAccess to code examples, deleted scenes, song names and more at https://www.patreon.com/codeaesthetic", "Premature Optimization", "tKbV6BpH-C8", 759, false, "https://www.youtube.com/watch?v=tKbV6BpH-C8", "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2023/s2023e021000_Premature Optimization.mp4", false, 26, ~U[2023-02-10 16:00:35Z]] 05:22:59.676 [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" = ?) [26] 05:22:59.677 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms 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[2023-01-16 12:30:04Z], 26] 05:22:59.680 [debug] QUERY OK source="media_items" db=1.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" ["Why you shouldn't write comments in your code (write documentation)\n\nAccess to code examples, discord, song names and more at https://www.patreon.com/codeaesthetic\n\nReferences:\n\nhttps://www.commitstrip.com/en/2016/08/25/a-very-comprehensive-and-precise-spec/?", "Don't Write Comments", "eb15848f-ca2e-4805-b4ca-0a200864022b", "Bf7vDBBOBUA", 355, false, "https://www.youtube.com/watch?v=Bf7vDBBOBUA", 4, "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2023/s2023e011600_Don't Write Comments.mp4", false, false, false, 26, [], 98, ~U[2023-01-16 12:30:04Z], ~U[2026-03-01 11:22:59Z], ~U[2026-03-01 11:22:59Z], "Why you shouldn't write comments in your code (write documentation)\n\nAccess to code examples, discord, song names and more at https://www.patreon.com/codeaesthetic\n\nReferences:\n\nhttps://www.commitstrip.com/en/2016/08/25/a-very-comprehensive-and-precise-spec/?", "Don't Write Comments", "Bf7vDBBOBUA", 355, false, "https://www.youtube.com/watch?v=Bf7vDBBOBUA", "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2023/s2023e011600_Don't Write Comments.mp4", false, 26, ~U[2023-01-16 12:30:04Z]] 05:22:59.681 [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" = ?) [26] 05:22:59.682 [debug] QUERY OK source="media_items" db=0.4ms 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[2022-12-22 14:04:23Z], 26] 05:22:59.685 [debug] QUERY OK source="media_items" db=2.0ms 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" ["Let's discuss the tradeoffs between Inheritance and Composition \n\nAccess to code examples, discord, song names and more at https://www.patreon.com/codeaesthetic\n\n0:00 Introduction\n0:25 Inheritance\n3:32 Composition\n5:22 Abstracting with Inheritance\n6:52 Abstracting with Interfaces\n8:20 When to use Inheritance", "The Flaws of Inheritance", "db8d4908-50b5-4603-a5d8-d5ecf64b6a96", "hxGOiiR9ZKg", 600, false, "https://www.youtube.com/watch?v=hxGOiiR9ZKg", 5, "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2022/s2022e122200_The Flaws of Inheritance.mp4", false, false, false, 26, [], 98, ~U[2022-12-22 14:04:23Z], ~U[2026-03-01 11:22:59Z], ~U[2026-03-01 11:22:59Z], "Let's discuss the tradeoffs between Inheritance and Composition \n\nAccess to code examples, discord, song names and more at https://www.patreon.com/codeaesthetic\n\n0:00 Introduction\n0:25 Inheritance\n3:32 Composition\n5:22 Abstracting with Inheritance\n6:52 Abstracting with Interfaces\n8:20 When to use Inheritance", "The Flaws of Inheritance", "hxGOiiR9ZKg", 600, false, "https://www.youtube.com/watch?v=hxGOiiR9ZKg", "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2022/s2022e122200_The Flaws of Inheritance.mp4", false, 26, ~U[2022-12-22 14:04:23Z]] 05:22:59.686 [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" = ?) [26] 05:22:59.687 [debug] QUERY OK source="media_items" db=0.4ms 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[2022-12-06 16:00:11Z], 26] 05:22:59.689 [debug] QUERY OK source="media_items" db=2.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" ["I'm a Never Nester and you should too. \n\nAccess to code examples, discord, song names and more at https://www.patreon.com/codeaesthetic\n\nCorrection: At 2:20 the inversion should be \"less than or equal\", not \"less than\"", "Why You Shouldn't Nest Your Code", "afdfc143-4f31-486d-974f-868226d99f47", "CFRhGnuXG-4", 509, false, "https://www.youtube.com/watch?v=CFRhGnuXG-4", 6, "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2022/s2022e120600_Why You Shouldn't Nest Your Code.mp4", false, false, false, 26, [], 98, ~U[2022-12-06 16:00:11Z], ~U[2026-03-01 11:22:59Z], ~U[2026-03-01 11:22:59Z], "I'm a Never Nester and you should too. \n\nAccess to code examples, discord, song names and more at https://www.patreon.com/codeaesthetic\n\nCorrection: At 2:20 the inversion should be \"less than or equal\", not \"less than\"", "Why You Shouldn't Nest Your Code", "CFRhGnuXG-4", 509, false, "https://www.youtube.com/watch?v=CFRhGnuXG-4", "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2022/s2022e120600_Why You Shouldn't Nest Your Code.mp4", false, 26, ~U[2022-12-06 16:00:11Z]] 05:22:59.690 [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" = ?) [26] 05:22:59.691 [debug] QUERY OK source="media_items" db=0.4ms 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[2022-11-27 20:02:53Z], 26] 05:22:59.694 [debug] QUERY OK source="media_items" db=2.3ms 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" ["It's hard to come up with good names in code, but its also easy to get wrong. By looking at some examples, we can get 80% of the way there. Access to code examples, discord, song names and more at https://www.patreon.com/codeaesthetic\n\n0:00 Introduction\n0:31 Variables with a single letter\n1:08 Never Abbreviate\n2:06 Types in your names\n2:36 Units in your variable names\n3:37 Types in your types\n4:30 Naming a class \"Base\" or \"Abstract\"\n5:45 Don't name code \"Utils\"\n7:09 Conclusion\n \n#softwaredesign #code #programming", "Naming Things in Code", "7ec91b63-be14-403c-aec7-85320e62796c", "-J3wNP6u5YU", 444, false, "https://www.youtube.com/watch?v=-J3wNP6u5YU", 7, "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2022/s2022e112700_Naming Things in Code.mp4", false, false, false, 26, [], 98, ~U[2022-11-27 20:02:53Z], ~U[2026-03-01 11:22:59Z], ~U[2026-03-01 11:22:59Z], "It's hard to come up with good names in code, but its also easy to get wrong. By looking at some examples, we can get 80% of the way there. Access to code examples, discord, song names and more at https://www.patreon.com/codeaesthetic\n\n0:00 Introduction\n0:31 Variables with a single letter\n1:08 Never Abbreviate\n2:06 Types in your names\n2:36 Units in your variable names\n3:37 Types in your types\n4:30 Naming a class \"Base\" or \"Abstract\"\n5:45 Don't name code \"Utils\"\n7:09 Conclusion\n \n#softwaredesign #code #programming", "Naming Things in Code", "-J3wNP6u5YU", 444, false, "https://www.youtube.com/watch?v=-J3wNP6u5YU", "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2022/s2022e112700_Naming Things in Code.mp4", false, 26, ~U[2022-11-27 20:02:53Z]] 05:22:59.695 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [26] 05:22:59.696 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms 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[2022-11-20 18:16:05Z], 26] 05:22:59.699 [debug] QUERY OK source="media_items" db=2.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" ["Support me on https://www.patreon.com/codeaesthetic. Access to code examples, discord, song names and more at https://www.patreon.com/codeaesthetic\n\nAdding abstraction to your code always feels like the right thing to do. But when you add abstraction, you add coupling which can often undermine the value of the abstraction.\n\n#programming #code #design #softwaredesign", "Abstraction Can Make Your Code Worse", "d268278e-f3e1-4c36-8cc9-a07c53ee61ec", "rQlMtztiAoA", 313, false, "https://www.youtube.com/watch?v=rQlMtztiAoA", 8, "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2022/s2022e112000_Abstraction Can Make Your Code Worse.mp4", false, false, false, 26, [], 98, ~U[2022-11-20 18:16:05Z], ~U[2026-03-01 11:22:59Z], ~U[2026-03-01 11:22:59Z], "Support me on https://www.patreon.com/codeaesthetic. Access to code examples, discord, song names and more at https://www.patreon.com/codeaesthetic\n\nAdding abstraction to your code always feels like the right thing to do. But when you add abstraction, you add coupling which can often undermine the value of the abstraction.\n\n#programming #code #design #softwaredesign", "Abstraction Can Make Your Code Worse", "rQlMtztiAoA", 313, false, "https://www.youtube.com/watch?v=rQlMtztiAoA", "/downloads/chris/tubes/Code Aesthetic_[UCaSCt8s_4nfkRglWCvNSDrg]/Season 2022/s2022e112000_Abstraction Can Make Your Code Worse.mp4", false, 26, ~U[2022-11-20 18:16:05Z]] 05:22:59.701 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=8.8ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-01 11:22:59Z], ~U[2026-03-01 11:22:59Z], 26] 05:22:59.702 [debug] QUERY OK source="media_items" db=1.1ms idle=7.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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")))) [26] 05:22:59.703 [debug] QUERY OK source="media_items" db=0.5ms idle=7.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")))) [26] 05:22:59.704 [debug] QUERY OK source="media_items" db=0.3ms idle=7.6ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [26] 05:22:59.708 [debug] QUERY OK source="tasks" db=0.7ms idle=4.5ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189098, 26, ~U[2026-03-01 11:22:59Z], ~U[2026-03-01 11:22:59Z]] 05:22:59.709 [info] {"args":{"id":26},"id":187392,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":51742198,"event":"job:stop","queue_time":122825,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 05:23:00.088 [info] {"source":"oban","duration":285,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:23:10.522 [info] {"source":"oban","duration":15635,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:23:40.536 [info] {"source":"oban","duration":14082,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:24:00.089 [info] {"source":"oban","duration":422,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:24:10.549 [info] {"source":"oban","duration":12039,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:24:40.562 [info] {"source":"oban","duration":11744,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:25:00.090 [info] {"source":"oban","duration":303,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:25:10.573 [info] {"source":"oban","duration":10464,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:25:40.587 [info] {"source":"oban","duration":12699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:26:00.091 [info] {"source":"oban","duration":302,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:26:10.597 [info] {"source":"oban","duration":9897,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":2} 05:26:40.611 [info] {"source":"oban","duration":12589,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:26:48.514 [info] {"args":{"id":52},"id":189096,"meta":{},"system_time":1772364408514704778,"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"]} 05:26:48.515 [debug] QUERY OK source="sources" db=0.8ms idle=7.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 05:26:48.516 [debug] QUERY OK source="settings" db=0.3ms 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 [] 05:26:48.517 [debug] QUERY OK source="media_profiles" db=0.7ms 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] 05:26:48.517 [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 [] 05:26:48.517 [debug] Fetching recent media IDs from YouTube RSS feed for source: UC9H0HzpKf5JlazkADWnW1Jw 05:26:48.825 [debug] Media ids fetched from RSS: ["AmqmI9SxdNc", "QwSDD2rvrbg", "M5fh85WVkPU", "AJGwm6P_f_8", "mfWhlH-5ooY", "eMl7jhLvHOQ", "GYBOJiYvtbI", "zMSL-kTF8LE", "lf9pprK5gg8", "WP69p26qNZY", "OuvUK9ZdjPs", "CA-0MvrvWAU", "-80I7UZL3hk", "hJ3wG8PVhPw", "HzeBu2mVff4"] 05:26:48.826 [debug] QUERY OK source="media_items" db=0.6ms idle=310.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND m0."media_id" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [52, "AmqmI9SxdNc", "QwSDD2rvrbg", "M5fh85WVkPU", "AJGwm6P_f_8", "mfWhlH-5ooY", "eMl7jhLvHOQ", "GYBOJiYvtbI", "zMSL-kTF8LE", "lf9pprK5gg8", "WP69p26qNZY", "OuvUK9ZdjPs", "CA-0MvrvWAU", "-80I7UZL3hk", "hJ3wG8PVhPw", "HzeBu2mVff4"] 05:26:48.827 [debug] QUERY OK source="media_items" db=0.8ms idle=310.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] 05:26:48.832 [debug] QUERY OK source="tasks" db=0.4ms idle=313.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189099, 1301334, ~U[2026-03-01 11:26:48Z], ~U[2026-03-01 11:26:48Z]] 05:26:48.835 [debug] QUERY OK source="tasks" db=0.4ms idle=4.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189100, 1301335, ~U[2026-03-01 11:26:48Z], ~U[2026-03-01 11:26:48Z]] 05:26:48.840 [info] {"args":{"id":1301334},"id":189099,"meta":{},"system_time":1772364408840198641,"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"]} 05:26:48.840 [info] {"args":{"id":1301335},"id":189100,"meta":{},"system_time":1772364408840352743,"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"]} 05:26:48.841 [debug] QUERY OK source="media_items" db=0.8ms idle=5.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1301334] 05:26:48.841 [debug] QUERY OK source="media_items" db=0.9ms idle=4.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1301335] 05:26:48.841 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:26:48.841 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:26:48.842 [debug] QUERY OK source="tasks" db=0.5ms idle=1.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189101, 1301347, ~U[2026-03-01 11:26:48Z], ~U[2026-03-01 11:26:48Z]] 05:26:48.843 [debug] QUERY OK source="sources" db=0.9ms 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" = ?) [52] 05:26:48.843 [debug] QUERY OK source="sources" db=1.1ms idle=1.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 05:26:48.844 [debug] QUERY OK source="media_profiles" db=0.5ms 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] 05:26:48.844 [debug] QUERY OK source="media_profiles" db=0.8ms idle=1.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:26:48.845 [debug] QUERY OK source="media_items" db=1.1ms idle=1.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1301334] 05:26:48.845 [debug] QUERY OK source="media_items" db=1.3ms 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 [1301335] 05:26:48.847 [debug] QUERY OK source="media_metadata" db=0.1ms 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" = ?) [1301334] 05:26:48.848 [debug] QUERY OK source="media_profiles" db=0.3ms idle=2.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:26:48.848 [debug] QUERY OK source="tasks" db=0.6ms idle=2.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189102, 1301392, ~U[2026-03-01 11:26:48Z], ~U[2026-03-01 11:26:48Z]] 05:26:48.849 [debug] QUERY OK source="media_metadata" db=0.9ms 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] 05:26:48.849 [debug] QUERY OK source="settings" db=0.5ms 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 [] 05:26:48.849 [debug] QUERY OK source="settings" db=0.4ms 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 [] 05:26:48.850 [debug] QUERY OK source="media_profiles" db=0.6ms 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] 05:26:48.850 [debug] Running yt-dlp command for action: get_downloadable_status 05:26:48.850 [debug] QUERY OK source="settings" db=0.3ms 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 [] 05:26:48.851 [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 [] 05:26:48.851 [debug] Running yt-dlp command for action: get_downloadable_status 05:26:48.851 [debug] QUERY OK source="settings" db=0.3ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:26:48.852 [debug] QUERY OK source="settings" db=0.3ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:26:48.853 [debug] QUERY OK source="settings" db=0.5ms 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 [] 05:26:48.853 [debug] QUERY OK source="settings" db=0.7ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:26:48.853 [debug] QUERY OK source="settings" db=0.4ms 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 [] 05:26:48.853 [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/37/64/37645933c98f00af22bd93d17fe0df626e3db9eadb19a8cf685811d8461886fc.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:26:48.854 [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 [] 05:26:48.854 [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/37/ee/37ee33f1693387d18964aba9eab014832dbf9573c86829d043f08267785e46f3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:26:48.855 [debug] QUERY OK source="tasks" db=0.4ms idle=1.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189103, 1301393, ~U[2026-03-01 11:26:48Z], ~U[2026-03-01 11:26:48Z]] 05:26:48.859 [debug] QUERY OK source="tasks" db=0.3ms idle=4.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189104, 1301394, ~U[2026-03-01 11:26:48Z], ~U[2026-03-01 11:26:48Z]] 05:26:48.863 [debug] QUERY OK source="tasks" db=0.6ms idle=5.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189105, 1301395, ~U[2026-03-01 11:26:48Z], ~U[2026-03-01 11:26:48Z]] 05:26:48.886 [debug] QUERY OK source="tasks" db=18.5ms idle=5.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189106, 1301397, ~U[2026-03-01 11:26:48Z], ~U[2026-03-01 11:26:48Z]] 05:26:48.895 [debug] QUERY OK source="tasks" db=0.4ms idle=26.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189107, 1301398, ~U[2026-03-01 11:26:48Z], ~U[2026-03-01 11:26:48Z]] 05:26:48.899 [debug] QUERY OK source="tasks" db=0.4ms idle=8.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189108, 1301399, ~U[2026-03-01 11:26:48Z], ~U[2026-03-01 11:26:48Z]] 05:26:48.903 [debug] QUERY OK source="tasks" db=0.4ms idle=4.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189109, 1301400, ~U[2026-03-01 11:26:48Z], ~U[2026-03-01 11:26:48Z]] 05:26:48.905 [debug] QUERY OK source="tasks" db=0.4ms idle=2.6ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189110, 52, ~U[2026-03-01 11:26:48Z], ~U[2026-03-01 11:26:48Z]] 05:26:48.905 [info] {"args":{"id":52},"id":189096,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":390648,"event":"job:stop","queue_time":49855,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 05:26:51.535 [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/37/64/37645933c98f00af22bd93d17fe0df626e3db9eadb19a8cf685811d8461886fc.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. 05:26:51.535 [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" 05:26:51.536 [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" 05:26:51.537 [info] {"args":{"id":1301334},"id":189099,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2695969,"event":"job:stop","queue_time":837391,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:26:51.543 [info] {"args":{"id":1301347},"id":189101,"meta":{},"system_time":1772364411543506115,"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"]} 05:26:51.544 [debug] QUERY OK source="media_items" db=0.3ms idle=1029.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] 05:26:51.544 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:26:51.545 [debug] QUERY OK source="sources" db=0.4ms idle=1030.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:26:51.545 [debug] QUERY OK source="media_profiles" db=0.3ms idle=31.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] 05:26:51.546 [debug] QUERY OK source="media_items" db=0.5ms idle=9.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 [1301347] 05:26:51.548 [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" = ?) [1301347] 05:26:51.548 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:26:51.549 [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 [] 05:26:51.549 [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 [] 05:26:51.549 [debug] Running yt-dlp command for action: get_downloadable_status 05:26:51.551 [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 [] 05:26:51.551 [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 [] 05:26:51.551 [debug] QUERY OK source="settings" db=0.3ms 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 [] 05:26:51.552 [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/db/72/db72ed6cf4ead0b4562fee189ed13fd97dba49889c45cf106c7a62b90ddb5798.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:26:51.756 [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/37/ee/37ee33f1693387d18964aba9eab014832dbf9573c86829d043f08267785e46f3.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. 05:26:51.757 [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" 05:26:51.757 [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" 05:26:51.758 [info] {"args":{"id":1301335},"id":189100,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2917178,"event":"job:stop","queue_time":837391,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:26:51.765 [info] {"args":{"id":1301392},"id":189102,"meta":{},"system_time":1772364411765511060,"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"]} 05:26:51.766 [debug] QUERY OK source="media_items" db=0.4ms idle=214.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] 05:26:51.766 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:26:51.767 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [52] 05:26:51.768 [debug] QUERY OK source="media_profiles" db=0.3ms idle=215.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] 05:26:51.769 [debug] QUERY OK source="media_items" db=0.6ms idle=10.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] 05:26:51.771 [debug] QUERY OK source="media_metadata" db=0.2ms idle=6.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] 05:26:51.772 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:26:51.773 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:26:51.773 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:26:51.773 [debug] Running yt-dlp command for action: get_downloadable_status 05:26:51.775 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:26:51.775 [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 [] 05:26:51.776 [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 [] 05:26:51.776 [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/c5/1f/c51f34805497d15a224863dffdaa7f17134ee745d7ce4effe0d38399214f21e5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:26:54.621 [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/db/72/db72ed6cf4ead0b4562fee189ed13fd97dba49889c45cf106c7a62b90ddb5798.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. 05:26:54.622 [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" 05:26:54.622 [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" 05:26:54.623 [info] {"args":{"id":1301347},"id":189101,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3078793,"event":"job:stop","queue_time":3542375,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:26:54.629 [info] {"args":{"id":1301393},"id":189103,"meta":{},"system_time":1772364414629570716,"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"]} 05:26:54.630 [debug] QUERY OK source="media_items" db=0.4ms idle=1115.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" = ?) [1301393] 05:26:54.630 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:26:54.631 [debug] QUERY OK source="sources" db=0.3ms idle=1111.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:26:54.631 [debug] QUERY OK source="media_profiles" db=0.3ms idle=110.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] 05:26:54.632 [debug] QUERY OK source="media_items" db=0.5ms idle=9.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 [1301393] 05:26:54.635 [debug] QUERY OK source="media_metadata" db=0.1ms idle=5.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" = ?) [1301393] 05:26:54.635 [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] 05:26:54.636 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:26:54.636 [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 [] 05:26:54.636 [debug] Running yt-dlp command for action: get_downloadable_status 05:26:54.638 [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 [] 05:26:54.638 [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 [] 05:26:54.638 [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 [] 05:26:54.639 [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/28/2b/282b69444234975b87acd19ffbabb44ea105ca788d7cc2511dd73c62cd1b20e4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:26:54.738 [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/c5/1f/c51f34805497d15a224863dffdaa7f17134ee745d7ce4effe0d38399214f21e5.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. 05:26:54.738 [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" 05:26:54.738 [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" 05:26:54.739 [info] {"args":{"id":1301392},"id":189102,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2973234,"event":"job:stop","queue_time":3764329,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:26:54.747 [info] {"args":{"id":1301394},"id":189104,"meta":{},"system_time":1772364414746893032,"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"]} 05:26:54.747 [debug] QUERY OK source="media_items" db=0.4ms idle=109.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] 05:26:54.748 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:26:54.748 [debug] QUERY OK source="sources" db=0.4ms idle=109.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:26:54.749 [debug] QUERY OK source="media_profiles" db=0.3ms idle=110.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] 05:26:54.750 [debug] QUERY OK source="media_items" db=0.5ms idle=10.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 [1301394] 05:26:54.751 [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] 05:26:54.751 [debug] QUERY OK source="media_profiles" db=0.3ms idle=3.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:26:54.752 [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 [] 05:26:54.753 [debug] QUERY OK source="settings" db=0.2ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:26:54.753 [debug] Running yt-dlp command for action: get_downloadable_status 05:26:54.754 [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 [] 05:26:54.755 [debug] QUERY OK source="settings" db=0.2ms idle=3.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:26:54.755 [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 [] 05:26:54.755 [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/44/dc/44dc926c60c7b8339e552fb16f41aae0d2d7887c878a8d774128a504f84d0606.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:26:57.508 [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/28/2b/282b69444234975b87acd19ffbabb44ea105ca788d7cc2511dd73c62cd1b20e4.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. 05:26:57.508 [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" 05:26:57.509 [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" 05:26:57.509 [info] {"args":{"id":1301393},"id":189103,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2879545,"event":"job:stop","queue_time":6628378,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:26:57.516 [info] {"args":{"id":1301395},"id":189105,"meta":{},"system_time":1772364417516660362,"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"]} 05:26:57.517 [debug] QUERY OK source="media_items" db=0.3ms idle=1002.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" = ?) [1301395] 05:26:57.517 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:26:57.518 [debug] QUERY OK source="sources" db=0.4ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 05:26:57.518 [debug] QUERY OK source="media_profiles" db=0.3ms idle=993.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] 05:26:57.519 [debug] QUERY OK source="media_items" db=0.4ms idle=9.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 [1301395] 05:26:57.521 [debug] QUERY OK source="media_metadata" db=0.1ms idle=4.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" = ?) [1301395] 05:26:57.521 [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] 05:26:57.522 [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 [] 05:26:57.522 [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 [] 05:26:57.523 [debug] Running yt-dlp command for action: get_downloadable_status 05:26:57.524 [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 [] 05:26:57.524 [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 [] 05:26:57.524 [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 [] 05:26:57.524 [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/7a/c8/7ac890f47945fb42d567ab2ecd1297f237df9ebc09b1fbb38332ae1e67a6bcc2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:26:57.888 [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/44/dc/44dc926c60c7b8339e552fb16f41aae0d2d7887c878a8d774128a504f84d0606.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. 05:26:57.888 [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" 05:26:57.888 [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" 05:26:57.889 [info] {"args":{"id":1301394},"id":189104,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3142048,"event":"job:stop","queue_time":6745399,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:26:57.896 [info] {"args":{"id":1301397},"id":189106,"meta":{},"system_time":1772364417896821097,"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"]} 05:26:57.897 [debug] QUERY OK source="media_items" db=0.3ms idle=372.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" = ?) [1301397] 05:26:57.897 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:26:57.898 [debug] QUERY OK source="sources" db=0.3ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 05:26:57.899 [debug] QUERY OK source="media_profiles" db=0.3ms idle=372.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] 05:26:57.900 [debug] QUERY OK source="media_items" db=0.4ms idle=9.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] 05:26:57.902 [debug] QUERY OK source="media_metadata" db=0.1ms idle=5.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" = ?) [1301397] 05:26:57.902 [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] 05:26:57.903 [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 [] 05:26:57.903 [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 [] 05:26:57.903 [debug] Running yt-dlp command for action: get_downloadable_status 05:26:57.905 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:26:57.905 [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 [] 05:26:57.906 [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 [] 05:26:57.906 [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/98/50/9850f093cc4b3d9a09f20812e9c636ae80ad4adb97864b9e6cbf5bc7bb79021e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:27:00.092 [info] {"source":"oban","duration":310,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:27:00.480 [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/7a/c8/7ac890f47945fb42d567ab2ecd1297f237df9ebc09b1fbb38332ae1e67a6bcc2.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. 05:27:00.481 [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" 05:27:00.481 [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" 05:27:00.482 [info] {"args":{"id":1301395},"id":189105,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2964755,"event":"job:stop","queue_time":9515365,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:27:00.489 [info] {"args":{"id":1301398},"id":189107,"meta":{},"system_time":1772364420489748945,"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"]} 05:27:00.490 [debug] QUERY OK source="media_items" db=0.3ms idle=975.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] 05:27:00.490 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:27:00.491 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [52] 05:27:00.491 [debug] QUERY OK source="media_profiles" db=0.2ms idle=398.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] 05:27:00.492 [debug] QUERY OK source="media_items" db=0.4ms idle=9.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] 05:27:00.495 [debug] QUERY OK source="media_metadata" db=0.1ms idle=5.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" = ?) [1301398] 05:27:00.495 [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] 05:27:00.496 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:27:00.496 [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 [] 05:27:00.496 [debug] Running yt-dlp command for action: get_downloadable_status 05:27:00.498 [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 [] 05:27:00.498 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:27:00.499 [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 [] 05:27:00.499 [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/2b/94/2b943b4d711e6caa3cc15e5a28cde1090c9fb2b2fb9cecce48b7230de499d9e0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:27:00.721 [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/98/50/9850f093cc4b3d9a09f20812e9c636ae80ad4adb97864b9e6cbf5bc7bb79021e.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. 05:27:00.721 [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" 05:27:00.722 [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" 05:27:00.722 [info] {"args":{"id":1301397},"id":189106,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2825407,"event":"job:stop","queue_time":9895382,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:27:00.730 [info] {"args":{"id":1301399},"id":189108,"meta":{},"system_time":1772364420730460948,"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"]} 05:27:00.731 [debug] QUERY OK source="media_items" db=0.4ms idle=232.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] 05:27:00.731 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:27:00.732 [debug] QUERY OK source="sources" db=0.4ms idle=232.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] 05:27:00.733 [debug] QUERY OK source="media_profiles" db=0.4ms idle=199.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] 05:27:00.734 [debug] QUERY OK source="media_items" db=0.5ms 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 [1301399] 05:27:00.736 [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" = ?) [1301399] 05:27:00.736 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:27:00.737 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:27:00.737 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms 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 [] 05:27:00.738 [debug] Running yt-dlp command for action: get_downloadable_status 05:27:00.738 [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 [] 05:27:00.739 [debug] QUERY OK source="settings" db=0.3ms 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 [] 05:27:00.739 [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 [] 05:27:00.740 [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/2c/aa2c3dbfa4c315a63699cff637cfaec888fef5f43fa384e21f81a888e59cf1d6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:27:03.711 [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/2b/94/2b943b4d711e6caa3cc15e5a28cde1090c9fb2b2fb9cecce48b7230de499d9e0.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. 05:27:03.711 [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" 05:27:03.711 [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" 05:27:03.713 [info] {"args":{"id":1301398},"id":189107,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3221887,"event":"job:stop","queue_time":12488357,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:27:03.721 [info] {"args":{"id":1301400},"id":189109,"meta":{},"system_time":1772364423721023109,"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"]} 05:27:03.721 [debug] QUERY OK source="media_items" db=0.3ms idle=1206.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] 05:27:03.722 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:27:03.722 [debug] QUERY OK source="sources" db=0.4ms idle=1184.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] 05:27:03.723 [debug] QUERY OK source="media_profiles" db=0.3ms idle=183.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] 05:27:03.724 [debug] QUERY OK source="media_items" db=0.5ms idle=10.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 [1301400] 05:27:03.726 [debug] QUERY OK source="media_metadata" db=0.1ms idle=5.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" = ?) [1301400] 05:27:03.726 [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] 05:27:03.727 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:27:03.728 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:27:03.728 [debug] Running yt-dlp command for action: get_downloadable_status 05:27:03.730 [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 [] 05:27:03.730 [debug] QUERY OK source="settings" db=0.2ms idle=3.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:27:03.730 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:27:03.731 [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/cf/9c/cf9c12e87aa21e1ccf8f36baf879cc2e0666e1cd5c39e066be900b934dc48e84.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:27:04.118 [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/2c/aa2c3dbfa4c315a63699cff637cfaec888fef5f43fa384e21f81a888e59cf1d6.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. 05:27:04.119 [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" 05:27:04.119 [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" 05:27:04.120 [info] {"args":{"id":1301399},"id":189108,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3388915,"event":"job:stop","queue_time":12728429,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:27:06.952 [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/cf/9c/cf9c12e87aa21e1ccf8f36baf879cc2e0666e1cd5c39e066be900b934dc48e84.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. 05:27:06.953 [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" 05:27:06.953 [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" 05:27:06.954 [info] {"args":{"id":1301400},"id":189109,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3232351,"event":"job:stop","queue_time":15719367,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:27:10.624 [info] {"source":"oban","duration":12648,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:27:40.636 [info] {"source":"oban","duration":12208,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:28:00.093 [info] {"source":"oban","duration":279,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:28:10.645 [info] {"source":"oban","duration":8561,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:28:40.660 [info] {"source":"oban","duration":13256,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 05:28:44.747 [info] {"args":{"id":37},"id":189024,"meta":{},"system_time":1772364524747306895,"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"]} 05:28:44.748 [debug] QUERY OK source="sources" db=1.0ms 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" = ?) [37] 05:28:44.749 [debug] QUERY OK source="settings" db=0.3ms idle=234.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:28:44.753 [debug] QUERY OK source="media_items" db=4.0ms idle=235.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] 05:28:44.754 [debug] QUERY OK source="media_items" db=0.4ms idle=13.9ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [37] 05:28:44.754 [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] 05:28:44.755 [debug] QUERY OK source="settings" db=0.1ms idle=6.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:28:44.755 [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 [] 05:28:44.759 [debug] QUERY OK source="media_items" db=3.8ms 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 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [37] 05:28:44.762 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 05:28:44.762 [debug] Current batch of media processed. Will check again in 1000ms 05:28:44.763 [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 [] 05:28:44.763 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:28:44.763 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:28:44.763 [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/14/02/1402a759be51a659ff01693e549a6e7b4d1019c3dd6d173aced05817fac2e0f4.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/4e/6b/4e6bad005bc36b11a13f3bb894cda763c53735f1223a380fff43a4001c828010.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:28:45.763 [debug] Current batch of media processed. Will check again in 1000ms 05:28:46.764 [debug] Current batch of media processed. Will check again in 1000ms 05:28:47.765 [debug] Current batch of media processed. Will check again in 1000ms 05:28:48.766 [debug] Current batch of media processed. Will check again in 1000ms 05:28:49.767 [debug] Current batch of media processed. Will check again in 1000ms 05:28:50.768 [debug] Current batch of media processed. Will check again in 1000ms 05:28:51.769 [debug] Current batch of media processed. Will check again in 1000ms 05:28:52.770 [debug] Current batch of media processed. Will check again in 1000ms 05:28:53.771 [debug] Current batch of media processed. Will check again in 1000ms 05:28:54.772 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "ssh terminal.shop \n\nWe break down the Open Claw insanity taking over Silicon Valley, including the head of AI safety accidentally nuking her own inbox, developers wiring autonomous agents directly into their lives, and the growing trend of giving AI sudo access like that’s a normal thing to do.\n\nTrash admits he’s vibe-coding secret iOS apps, including one that may or may not speedrun divorce. We debate AI personal assistants, spam calls, self-hosting myths, Mac mini bot farms, and whether anyone is actually running these models locally.\n\nWe also dissect the most awkward AI summit moment of the year: Sam Altman and Dario Amodei refusing to hold hands on stage next to the Prime Minister of India. Theater kid energy meets billion-dollar rivalry.\n\n\n\nRead the Harper’s piece we reference in this episode — a deep dive into AI startup culture and the hype surrounding it: https://harpers.org/archive/2026/03/childs-play-sam-kriss-ai-startup-roy-lee/\n\n\n00:00:00 - Intro\n00:02:20 - Terminal Coffee\n00:02:54 - AI Personal Assistants\n00:08:53 - Vibing iOS Apps\n00:11:38 - Bash's projects\n00:13:38 - Primes old Netflix codebase\n00:16:00 - Meta AI safety blunder\n00:21:01 - OpenClaw Mac Minis\n00:24:38 - AI Impact Summit", "duration" => 2125, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022800_AI Personal Assistants are ruining people lives | TheStandup.mp4", "id" => "LpMn08jW02A", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=LpMn08jW02A", "playlist_index" => 1, "timestamp" => 1772287236, "title" => "AI Personal Assistants are ruining people lives | TheStandup", "upload_date" => "20260228"} 05:28:54.773 [debug] QUERY OK source="sources" db=0.4ms 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" IN (?)) [37] 05:28:54.774 [debug] QUERY OK source="sources" db=0.2ms idle=259.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] 05:28:54.779 [debug] QUERY OK source="media_items" db=4.3ms idle=260.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-28 14:00:36Z], 37] 05:28:54.782 [debug] QUERY OK source="media_items" db=2.4ms idle=265.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" ["ssh terminal.shop \n\nWe break down the Open Claw insanity taking over Silicon Valley, including the head of AI safety accidentally nuking her own inbox, developers wiring autonomous agents directly into their lives, and the growing trend of giving AI sudo access like that’s a normal thing to do.\n\nTrash admits he’s vibe-coding secret iOS apps, including one that may or may not speedrun divorce. We debate AI personal assistants, spam calls, self-hosting myths, Mac mini bot farms, and whether anyone is actually running these models locally.\n\nWe also dissect the most awkward AI summit moment of the year: Sam Altman and Dario Amodei refusing to hold hands on stage next to the Prime Minister of India. Theater kid energy meets billion-dollar rivalry.\n\n\n\nRead the Harper’s piece we reference in this episode — a deep dive into AI startup culture and the hype surrounding it: https://harpers.org/archive/2026/03/childs-play-sam-kriss-ai-startup-roy-lee/\n\n\n00:00:00 - Intro\n00:02:20 - Terminal Coffee\n00:02:54 - AI Personal Assistants\n00:08:53 - Vibing iOS Apps\n00:11:38 - Bash's projects\n00:13:38 - Primes old Netflix codebase\n00:16:00 - Meta AI safety blunder\n00:21:01 - OpenClaw Mac Minis\n00:24:38 - AI Impact Summit", "AI Personal Assistants are ruining people lives | TheStandup", "0c0f5ae3-7192-4546-86f3-d7f4aa9421d2", "LpMn08jW02A", 2125, false, "https://www.youtube.com/watch?v=LpMn08jW02A", 1, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022800_AI Personal Assistants are ruining people lives | TheStandup.mp4", false, false, false, 37, [], 98, ~U[2026-02-28 14:00:36Z], ~U[2026-03-01 11:28:54Z], ~U[2026-03-01 11:28:54Z], "ssh terminal.shop \n\nWe break down the Open Claw insanity taking over Silicon Valley, including the head of AI safety accidentally nuking her own inbox, developers wiring autonomous agents directly into their lives, and the growing trend of giving AI sudo access like that’s a normal thing to do.\n\nTrash admits he’s vibe-coding secret iOS apps, including one that may or may not speedrun divorce. We debate AI personal assistants, spam calls, self-hosting myths, Mac mini bot farms, and whether anyone is actually running these models locally.\n\nWe also dissect the most awkward AI summit moment of the year: Sam Altman and Dario Amodei refusing to hold hands on stage next to the Prime Minister of India. Theater kid energy meets billion-dollar rivalry.\n\n\n\nRead the Harper’s piece we reference in this episode — a deep dive into AI startup culture and the hype surrounding it: https://harpers.org/archive/2026/03/childs-play-sam-kriss-ai-startup-roy-lee/\n\n\n00:00:00 - Intro\n00:02:20 - Terminal Coffee\n00:02:54 - AI Personal Assistants\n00:08:53 - Vibing iOS Apps\n00:11:38 - Bash's projects\n00:13:38 - Primes old Netflix codebase\n00:16:00 - Meta AI safety blunder\n00:21:01 - OpenClaw Mac Minis\n00:24:38 - AI Impact Summit", "AI Personal Assistants are ruining people lives | TheStandup", "LpMn08jW02A", 2125, false, "https://www.youtube.com/watch?v=LpMn08jW02A", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022800_AI Personal Assistants are ruining people lives | TheStandup.mp4", false, 37, ~U[2026-02-28 14:00:36Z]] 05:28:54.783 [debug] QUERY OK source="sources" db=0.4ms 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] 05:28:54.783 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:28:54.785 [debug] QUERY OK source="media_items" db=0.7ms idle=9.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 [2375636] 05:28:54.785 [debug] Current batch of media processed. Will check again in 1000ms 05:28:55.786 [debug] Current batch of media processed. Will check again in 1000ms 05:28:56.787 [debug] Current batch of media processed. Will check again in 1000ms 05:28:57.788 [debug] Current batch of media processed. Will check again in 1000ms 05:28:58.789 [debug] Current batch of media processed. Will check again in 1000ms 05:28:59.790 [debug] Current batch of media processed. Will check again in 1000ms 05:29:00.094 [info] {"source":"oban","duration":282,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:29:00.791 [debug] Current batch of media processed. Will check again in 1000ms 05:29:01.792 [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" => 627, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022700_Cloudflare’s Lavalamp Obsession.mp4", "id" => "hxY6DewNpao", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=hxY6DewNpao", "playlist_index" => 2, "timestamp" => 1772196873, "title" => "Cloudflare’s Lavalamp Obsession", "upload_date" => "20260227"} 05:29:01.793 [debug] QUERY OK source="sources" db=0.3ms idle=1278.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:29:01.794 [debug] QUERY OK source="sources" db=0.2ms idle=1279.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:29:01.798 [debug] QUERY OK source="media_items" db=4.0ms idle=1022.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-27 12:54:33Z], 37] 05:29:01.800 [debug] QUERY OK source="media_items" db=1.4ms idle=284.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", "Cloudflare’s Lavalamp Obsession", "e4cd7760-59f5-4e75-92af-695632fa2291", "hxY6DewNpao", 627, false, "https://www.youtube.com/watch?v=hxY6DewNpao", 2, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022700_Cloudflare’s Lavalamp Obsession.mp4", false, false, false, 37, [], 98, ~U[2026-02-27 12:54:33Z], ~U[2026-03-01 11:29:01Z], ~U[2026-03-01 11:29:01Z], "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", "Cloudflare’s Lavalamp Obsession", "hxY6DewNpao", 627, false, "https://www.youtube.com/watch?v=hxY6DewNpao", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022700_Cloudflare’s Lavalamp Obsession.mp4", false, 37, ~U[2026-02-27 12:54:33Z]] 05:29:01.801 [debug] QUERY OK source="sources" db=0.3ms idle=27.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:29:01.801 [debug] QUERY OK source="media_profiles" db=0.3ms idle=7.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] 05:29:01.802 [debug] QUERY OK source="media_items" db=0.4ms 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 [2363574] 05:29:01.802 [debug] Current batch of media processed. Will check again in 1000ms 05:29:02.803 [debug] Current batch of media processed. Will check again in 1000ms 05:29:03.804 [debug] Current batch of media processed. Will check again in 1000ms 05:29:04.805 [debug] Current batch of media processed. Will check again in 1000ms 05:29:05.806 [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" => 558, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022500_Openclaw deletes entire inbox.mp4", "id" => "JiA4fvoeUfI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=JiA4fvoeUfI", "playlist_index" => 3, "timestamp" => 1772024438, "title" => "Openclaw deletes entire inbox", "upload_date" => "20260225"} 05:29:05.807 [debug] QUERY OK source="sources" db=0.3ms idle=292.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] 05:29:05.808 [debug] QUERY OK source="sources" db=0.2ms idle=293.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:29:05.812 [debug] QUERY OK source="media_items" db=4.2ms idle=293.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-25 13:00:38Z], 37] 05:29:05.814 [debug] QUERY OK source="media_items" db=1.6ms idle=298.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", "Openclaw deletes entire inbox", "f94ab564-fa1b-4a3b-a928-bec4d62c4c7a", "JiA4fvoeUfI", 558, false, "https://www.youtube.com/watch?v=JiA4fvoeUfI", 3, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022500_Openclaw deletes entire inbox.mp4", false, false, false, 37, [], 98, ~U[2026-02-25 13:00:38Z], ~U[2026-03-01 11:29:05Z], ~U[2026-03-01 11:29:05Z], "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", "Openclaw deletes entire inbox", "JiA4fvoeUfI", 558, false, "https://www.youtube.com/watch?v=JiA4fvoeUfI", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022500_Openclaw deletes entire inbox.mp4", false, 37, ~U[2026-02-25 13:00:38Z]] 05:29:05.815 [debug] QUERY OK source="sources" db=0.3ms 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] 05:29:05.816 [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] 05:29:05.816 [debug] QUERY OK source="media_items" db=0.3ms 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 [2350266] 05:29:05.816 [debug] Current batch of media processed. Will check again in 1000ms 05:29:06.817 [debug] Current batch of media processed. Will check again in 1000ms 05:29:07.818 [debug] Current batch of media processed. Will check again in 1000ms 05:29:08.819 [debug] Current batch of media processed. Will check again in 1000ms 05:29:09.820 [debug] Current batch of media processed. Will check again in 1000ms 05:29:10.675 [info] {"source":"oban","duration":14870,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:29:10.821 [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\n### Check out video on distillation!\nhttps://www.youtube.com/watch?v=jrJKRYAdh7I\n\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" => 397, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022300_Is Google allowed be mad at this?.mp4", "id" => "W9WB2xbM5sc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=W9WB2xbM5sc", "playlist_index" => 4, "timestamp" => 1771862693, "title" => "Is Google allowed be mad at this?", "upload_date" => "20260223"} 05:29:10.822 [debug] QUERY OK source="sources" db=0.4ms idle=1307.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:29:10.823 [debug] QUERY OK source="sources" db=0.3ms idle=1308.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:29:10.828 [debug] QUERY OK source="media_items" db=4.7ms idle=1034.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-23 16:04:53Z], 37] 05:29:10.831 [debug] QUERY OK source="media_items" db=1.8ms idle=153.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\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\n### Check out video on distillation!\nhttps://www.youtube.com/watch?v=jrJKRYAdh7I\n\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 Google allowed be mad at this?", "fee05467-606c-41c8-baff-54ba332caafe", "W9WB2xbM5sc", 397, false, "https://www.youtube.com/watch?v=W9WB2xbM5sc", 4, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022300_Is Google allowed be mad at this?.mp4", false, false, false, 37, [], 97, ~U[2026-02-23 16:04:53Z], ~U[2026-03-01 11:29:10Z], ~U[2026-03-01 11:29:10Z], "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\n### Check out video on distillation!\nhttps://www.youtube.com/watch?v=jrJKRYAdh7I\n\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 Google allowed be mad at this?", "W9WB2xbM5sc", 397, false, "https://www.youtube.com/watch?v=W9WB2xbM5sc", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022300_Is Google allowed be mad at this?.mp4", false, 37, ~U[2026-02-23 16:04:53Z]] 05:29:10.831 [debug] QUERY OK source="sources" db=0.3ms idle=39.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] 05:29:10.832 [debug] QUERY OK source="media_profiles" db=0.3ms idle=9.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] 05:29:10.833 [debug] QUERY OK source="media_items" db=0.4ms idle=9.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [2337025] 05:29:10.833 [debug] Current batch of media processed. Will check again in 1000ms 05:29:11.834 [debug] Current batch of media processed. Will check again in 1000ms 05:29:12.835 [debug] Current batch of media processed. Will check again in 1000ms 05:29:13.836 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "ssh terminal.shop\n\nBen and Alexis join the show to talk about their new sketch comedy series, the creative chaos behind it, and what it actually takes to ship something big online. From quitting tech jobs to filming 12-hour shoot days, unreleased music videos, and creative mental breakdowns, this episode is a behind-the-scenes look at building something ambitious with friends.\n\n\nIt’s comedy, tech, risk, and a whole lot of “just make the thing.”\n\n\n\nCHAPTERS\n00:00:00 - Intro\n00:03:00 - BIG KRAZAM Project\n00:04:25 - Terminal Coffee\n00:05:00 - The Tease\n00:05:36 - Output and Delays\n00:08:08 - THE ANNOUCEMENT\n00:11:30 - Why now\n00:20:00 - What it takes to make something like this\n00:26:55 - Teej says something nice\n00:28:10 - Whats different about a making a sketch show\n00:30:50 - Quiting SWE\n00:39:29 - Agentic Life\n00:41:25 - Begins stolen Valor and making a band\n00:43:42 - Instruments\n00:47:00 - We should be making a band!\n00:51:23 - Outro", "duration" => 2979, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022100_Big KRAZAM Announcement | TheStandup.mp4", "id" => "uhlBpEkdxhM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=uhlBpEkdxhM", "playlist_index" => 5, "timestamp" => 1771687683, "title" => "Big KRAZAM Announcement | TheStandup", "upload_date" => "20260221"} 05:29:13.837 [debug] QUERY OK source="sources" db=0.6ms idle=1322.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:29:13.838 [debug] QUERY OK source="sources" db=0.4ms idle=1323.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] 05:29:13.843 [debug] QUERY OK source="media_items" db=4.2ms idle=1324.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-21 15:28:03Z], 37] 05:29:13.849 [debug] QUERY OK source="media_items" db=5.0ms idle=1048.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" ["ssh terminal.shop\n\nBen and Alexis join the show to talk about their new sketch comedy series, the creative chaos behind it, and what it actually takes to ship something big online. From quitting tech jobs to filming 12-hour shoot days, unreleased music videos, and creative mental breakdowns, this episode is a behind-the-scenes look at building something ambitious with friends.\n\n\nIt’s comedy, tech, risk, and a whole lot of “just make the thing.”\n\n\n\nCHAPTERS\n00:00:00 - Intro\n00:03:00 - BIG KRAZAM Project\n00:04:25 - Terminal Coffee\n00:05:00 - The Tease\n00:05:36 - Output and Delays\n00:08:08 - THE ANNOUCEMENT\n00:11:30 - Why now\n00:20:00 - What it takes to make something like this\n00:26:55 - Teej says something nice\n00:28:10 - Whats different about a making a sketch show\n00:30:50 - Quiting SWE\n00:39:29 - Agentic Life\n00:41:25 - Begins stolen Valor and making a band\n00:43:42 - Instruments\n00:47:00 - We should be making a band!\n00:51:23 - Outro", "Big KRAZAM Announcement | TheStandup", "e8eeb247-76e2-474e-bf22-9563e37bf743", "uhlBpEkdxhM", 2979, false, "https://www.youtube.com/watch?v=uhlBpEkdxhM", 5, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022100_Big KRAZAM Announcement | TheStandup.mp4", false, false, false, 37, [], 98, ~U[2026-02-21 15:28:03Z], ~U[2026-03-01 11:29:13Z], ~U[2026-03-01 11:29:13Z], "ssh terminal.shop\n\nBen and Alexis join the show to talk about their new sketch comedy series, the creative chaos behind it, and what it actually takes to ship something big online. From quitting tech jobs to filming 12-hour shoot days, unreleased music videos, and creative mental breakdowns, this episode is a behind-the-scenes look at building something ambitious with friends.\n\n\nIt’s comedy, tech, risk, and a whole lot of “just make the thing.”\n\n\n\nCHAPTERS\n00:00:00 - Intro\n00:03:00 - BIG KRAZAM Project\n00:04:25 - Terminal Coffee\n00:05:00 - The Tease\n00:05:36 - Output and Delays\n00:08:08 - THE ANNOUCEMENT\n00:11:30 - Why now\n00:20:00 - What it takes to make something like this\n00:26:55 - Teej says something nice\n00:28:10 - Whats different about a making a sketch show\n00:30:50 - Quiting SWE\n00:39:29 - Agentic Life\n00:41:25 - Begins stolen Valor and making a band\n00:43:42 - Instruments\n00:47:00 - We should be making a band!\n00:51:23 - Outro", "Big KRAZAM Announcement | TheStandup", "uhlBpEkdxhM", 2979, false, "https://www.youtube.com/watch?v=uhlBpEkdxhM", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022100_Big KRAZAM Announcement | TheStandup.mp4", false, 37, ~U[2026-02-21 15:28:03Z]] 05:29:13.850 [debug] QUERY OK source="sources" db=0.9ms idle=52.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:29:13.851 [debug] QUERY OK source="media_profiles" db=0.4ms idle=13.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] 05:29:13.852 [debug] QUERY OK source="media_items" db=0.4ms idle=13.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 [2321384] 05:29:13.852 [debug] Current batch of media processed. Will check again in 1000ms 05:29:14.853 [debug] Current batch of media processed. Will check again in 1000ms 05:29:15.854 [debug] Current batch of media processed. Will check again in 1000ms 05:29:16.855 [debug] Current batch of media processed. Will check again in 1000ms 05:29:17.856 [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" => 605, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022000_AI Agent writes hit piece.mp4", "id" => "ssTUhnShKGM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ssTUhnShKGM", "playlist_index" => 6, "timestamp" => 1771589896, "title" => "AI Agent writes hit piece", "upload_date" => "20260220"} 05:29:17.857 [debug] QUERY OK source="sources" db=0.3ms idle=342.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:29:17.857 [debug] QUERY OK source="sources" db=0.2ms idle=343.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:29:17.862 [debug] QUERY OK source="media_items" db=4.5ms idle=343.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 12:18:16Z], 37] 05:29:17.865 [debug] QUERY OK source="media_items" db=1.9ms idle=348.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", "AI Agent writes hit piece", "95adb16a-6352-47e2-bd48-b925d593a46b", "ssTUhnShKGM", 605, false, "https://www.youtube.com/watch?v=ssTUhnShKGM", 6, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022000_AI Agent writes hit piece.mp4", false, false, false, 37, [], 98, ~U[2026-02-20 12:18:16Z], ~U[2026-03-01 11:29:17Z], ~U[2026-03-01 11:29:17Z], "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", "AI Agent writes hit piece", "ssTUhnShKGM", 605, false, "https://www.youtube.com/watch?v=ssTUhnShKGM", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022000_AI Agent writes hit piece.mp4", false, 37, ~U[2026-02-20 12:18:16Z]] 05:29:17.866 [debug] QUERY OK source="sources" db=0.4ms idle=60.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:29:17.866 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 05:29:17.867 [debug] QUERY OK source="media_items" db=0.5ms 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 [2312252] 05:29:17.868 [debug] Current batch of media processed. Will check again in 1000ms 05:29:18.868 [debug] Current batch of media processed. Will check again in 1000ms 05:29:19.870 [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\n\n### Sources \nhttps://www.anthropic.com/engineering/building-c-compiler \nhttps://www.youtube.com/shorts/HfAFHRVtYFE \nhttps://x.com/ThePrimeagen/status/2020220244078239867 \nhttps://github.com/anthropics/claudes-c-compiler/issues/1 \nhttps://x.com/garlic_wife/status/2019820276553482717 \nhttps://x.com/YATPoaster/status/2019644885373186303 \nhttps://x.com/ShriramKMurthi/status/2019818366110953862 \nhttps://x.com/AnthropicAI/status/2019496582698397945 \nhttps://www.youtube.com/watch?v=vNeIQS9GsZ8 \nhttps://arxiv.org/abs/2601.02671", "duration" => 497, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e021800_The Real Reason Anthropic built a Compiler.mp4", "id" => "6QryFk4RYaM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=6QryFk4RYaM", "playlist_index" => 7, "timestamp" => 1771415704, "title" => "The Real Reason Anthropic built a Compiler", "upload_date" => "20260218"} 05:29:19.870 [debug] QUERY OK source="sources" db=0.4ms idle=355.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:29:19.871 [debug] QUERY OK source="sources" db=0.2ms idle=356.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:29:19.876 [debug] QUERY OK source="media_items" db=4.6ms idle=357.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-18 11:55:04Z], 37] 05:29:19.879 [debug] QUERY OK source="media_items" db=2.3ms idle=362.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\n\n### Sources \nhttps://www.anthropic.com/engineering/building-c-compiler \nhttps://www.youtube.com/shorts/HfAFHRVtYFE \nhttps://x.com/ThePrimeagen/status/2020220244078239867 \nhttps://github.com/anthropics/claudes-c-compiler/issues/1 \nhttps://x.com/garlic_wife/status/2019820276553482717 \nhttps://x.com/YATPoaster/status/2019644885373186303 \nhttps://x.com/ShriramKMurthi/status/2019818366110953862 \nhttps://x.com/AnthropicAI/status/2019496582698397945 \nhttps://www.youtube.com/watch?v=vNeIQS9GsZ8 \nhttps://arxiv.org/abs/2601.02671", "The Real Reason Anthropic built a Compiler", "5292981a-006d-47c2-b203-f46144295506", "6QryFk4RYaM", 497, false, "https://www.youtube.com/watch?v=6QryFk4RYaM", 7, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e021800_The Real Reason Anthropic built a Compiler.mp4", false, false, false, 37, [], 98, ~U[2026-02-18 11:55:04Z], ~U[2026-03-01 11:29:19Z], ~U[2026-03-01 11:29:19Z], "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\n\n### Sources \nhttps://www.anthropic.com/engineering/building-c-compiler \nhttps://www.youtube.com/shorts/HfAFHRVtYFE \nhttps://x.com/ThePrimeagen/status/2020220244078239867 \nhttps://github.com/anthropics/claudes-c-compiler/issues/1 \nhttps://x.com/garlic_wife/status/2019820276553482717 \nhttps://x.com/YATPoaster/status/2019644885373186303 \nhttps://x.com/ShriramKMurthi/status/2019818366110953862 \nhttps://x.com/AnthropicAI/status/2019496582698397945 \nhttps://www.youtube.com/watch?v=vNeIQS9GsZ8 \nhttps://arxiv.org/abs/2601.02671", "The Real Reason Anthropic built a Compiler", "6QryFk4RYaM", 497, false, "https://www.youtube.com/watch?v=6QryFk4RYaM", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e021800_The Real Reason Anthropic built a Compiler.mp4", false, 37, ~U[2026-02-18 11:55:04Z]] 05:29:19.880 [debug] QUERY OK source="sources" db=0.4ms idle=69.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:29:19.881 [debug] QUERY OK source="media_profiles" db=0.3ms idle=9.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] 05:29:19.882 [debug] QUERY OK source="media_items" db=0.4ms 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 [2296443] 05:29:19.882 [debug] Current batch of media processed. Will check again in 1000ms 05:29:20.882 [debug] Current batch of media processed. Will check again in 1000ms 05:29:21.883 [debug] Current batch of media processed. Will check again in 1000ms 05:29:22.884 [debug] Current batch of media processed. Will check again in 1000ms 05:29:23.885 [debug] Current batch of media processed. Will check again in 1000ms 05:29:24.886 [debug] Current batch of media processed. Will check again in 1000ms 05:29:25.887 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Article\nhttps://questdb.com/blog/jvm-current-thread-user-time/\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" => 479, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e021600_Only 40 lines of code.mp4", "id" => "R3ydGMRtnqU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=R3ydGMRtnqU", "playlist_index" => 8, "timestamp" => 1771246919, "title" => "Only 40 lines of code", "upload_date" => "20260216"} 05:29:25.888 [debug] QUERY OK source="sources" db=0.3ms idle=373.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] 05:29:25.889 [debug] QUERY OK source="sources" db=0.2ms idle=374.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:29:25.894 [debug] QUERY OK source="media_items" db=5.1ms idle=374.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-16 13:01:59Z], 37] 05:29:25.897 [debug] QUERY OK source="media_items" db=1.7ms idle=380.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### Article\nhttps://questdb.com/blog/jvm-current-thread-user-time/\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", "Only 40 lines of code", "a5c9db04-52ec-401c-975d-c707de8931a8", "R3ydGMRtnqU", 479, false, "https://www.youtube.com/watch?v=R3ydGMRtnqU", 8, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e021600_Only 40 lines of code.mp4", false, false, false, 37, [], 98, ~U[2026-02-16 13:01:59Z], ~U[2026-03-01 11:29:25Z], ~U[2026-03-01 11:29:25Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Article\nhttps://questdb.com/blog/jvm-current-thread-user-time/\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", "Only 40 lines of code", "R3ydGMRtnqU", 479, false, "https://www.youtube.com/watch?v=R3ydGMRtnqU", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e021600_Only 40 lines of code.mp4", false, 37, ~U[2026-02-16 13:01:59Z]] 05:29:25.897 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [37] 05:29:25.898 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:29:25.899 [debug] QUERY OK source="media_items" db=0.4ms idle=9.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 [2281498] 05:29:25.899 [debug] Current batch of media processed. Will check again in 1000ms 05:29:26.900 [debug] Current batch of media processed. Will check again in 1000ms 05:29:27.901 [debug] Current batch of media processed. Will check again in 1000ms 05:29:28.902 [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\nChapters \n00:00:00 - Intro\n00:01:04 - Begins Current Game\n00:04:18 - Terminal Coffee\n00:04:52 - Terraria plugins\n00:07:26 - Primes Current Game\n00:09:25 - Begin Ruins Magic\n00:13:19 - Back to Primes Game\n00:15:50 - Tostitos\n00:18:57 - Trashs Current Game\n00:26:14 - Trash pro gamer lore\n00:28:49 - Replacing toxic gaming with coding\n00:32:13 - Perfect Dark VS 007 Golden Gun\n00:33:07 - Old School Cheating and Retro Games\n00:36:22 - Educational games\n00:38:16 - DOTA\n00:45:00 - Zelda\n00:46:48 - Teejs Current game\n00:47:58 - Games we are excited for\n00:53:48 - Age Of Empires\n00:57:58 - LOTR\n00:59:19 - Outro\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\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" => 3629, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e021400_We used to be gamers | TheStandup.mp4", "id" => "FBvB1MQis4Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=FBvB1MQis4Y", "playlist_index" => 9, "timestamp" => 1771089775, "title" => "We used to be gamers | TheStandup", "upload_date" => "20260214"} 05:29:28.903 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1388.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:29:28.904 [debug] QUERY OK source="sources" db=0.3ms idle=1389.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:29:28.908 [debug] QUERY OK source="media_items" db=4.0ms idle=1389.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-14 17:22:55Z], 37] 05:29:28.911 [debug] QUERY OK source="media_items" db=2.1ms idle=1082.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\nChapters \n00:00:00 - Intro\n00:01:04 - Begins Current Game\n00:04:18 - Terminal Coffee\n00:04:52 - Terraria plugins\n00:07:26 - Primes Current Game\n00:09:25 - Begin Ruins Magic\n00:13:19 - Back to Primes Game\n00:15:50 - Tostitos\n00:18:57 - Trashs Current Game\n00:26:14 - Trash pro gamer lore\n00:28:49 - Replacing toxic gaming with coding\n00:32:13 - Perfect Dark VS 007 Golden Gun\n00:33:07 - Old School Cheating and Retro Games\n00:36:22 - Educational games\n00:38:16 - DOTA\n00:45:00 - Zelda\n00:46:48 - Teejs Current game\n00:47:58 - Games we are excited for\n00:53:48 - Age Of Empires\n00:57:58 - LOTR\n00:59:19 - Outro\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "We used to be gamers | TheStandup", "9405930b-cfe0-47d7-b432-3b150052a758", "FBvB1MQis4Y", 3629, false, "https://www.youtube.com/watch?v=FBvB1MQis4Y", 9, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e021400_We used to be gamers | TheStandup.mp4", false, false, false, 37, [], 98, ~U[2026-02-14 17:22:55Z], ~U[2026-03-01 11:29:28Z], ~U[2026-03-01 11:29:28Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nChapters \n00:00:00 - Intro\n00:01:04 - Begins Current Game\n00:04:18 - Terminal Coffee\n00:04:52 - Terraria plugins\n00:07:26 - Primes Current Game\n00:09:25 - Begin Ruins Magic\n00:13:19 - Back to Primes Game\n00:15:50 - Tostitos\n00:18:57 - Trashs Current Game\n00:26:14 - Trash pro gamer lore\n00:28:49 - Replacing toxic gaming with coding\n00:32:13 - Perfect Dark VS 007 Golden Gun\n00:33:07 - Old School Cheating and Retro Games\n00:36:22 - Educational games\n00:38:16 - DOTA\n00:45:00 - Zelda\n00:46:48 - Teejs Current game\n00:47:58 - Games we are excited for\n00:53:48 - Age Of Empires\n00:57:58 - LOTR\n00:59:19 - Outro\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "We used to be gamers | TheStandup", "FBvB1MQis4Y", 3629, false, "https://www.youtube.com/watch?v=FBvB1MQis4Y", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e021400_We used to be gamers | TheStandup.mp4", false, 37, ~U[2026-02-14 17:22:55Z]] 05:29:28.912 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [37] 05:29:28.912 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:29:28.913 [debug] QUERY OK source="media_items" db=0.4ms 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 [2267156] 05:29:28.913 [debug] Current batch of media processed. Will check again in 1000ms 05:29:29.914 [debug] Current batch of media processed. Will check again in 1000ms 05:29:30.841 [info] {"args":{"id":45},"id":189025,"meta":{},"system_time":1772364570841747522,"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"]} 05:29:30.842 [debug] QUERY OK source="sources" db=0.2ms idle=327.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:29:30.843 [debug] QUERY OK source="settings" db=0.4ms idle=328.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:29:30.846 [debug] QUERY OK source="media_items" db=3.2ms idle=328.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] 05:29:30.847 [debug] QUERY OK source="media_items" db=0.5ms idle=12.4ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [45] 05:29:30.848 [debug] QUERY OK source="media_profiles" db=0.2ms idle=6.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:29:30.849 [debug] QUERY OK source="settings" db=0.1ms idle=6.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:29:30.849 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:29:30.860 [debug] QUERY OK source="media_items" db=3.6ms idle=10.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] 05:29:30.863 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 05:29:30.864 [debug] Current batch of media processed. Will check again in 1000ms 05:29:30.864 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=16.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:29:30.865 [debug] QUERY OK source="settings" db=0.3ms idle=16.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:29:30.865 [debug] QUERY OK source="settings" db=0.3ms idle=16.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:29:30.866 [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/cf/5f/cf5faa042e591c9508cd345ef3324479a347cc05cb43d1c089c968a51f506aba.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/c0/65/c065f81459ea2b0a655dac7d88444cc2e6c24d801910ac400607720b30449823.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:29:30.915 [debug] Current batch of media processed. Will check again in 1000ms 05:29:31.865 [debug] Current batch of media processed. Will check again in 1000ms 05:29:31.916 [debug] Current batch of media processed. Will check again in 1000ms 05:29:32.866 [debug] Current batch of media processed. Will check again in 1000ms 05:29:32.917 [debug] Current batch of media processed. Will check again in 1000ms 05:29:33.867 [debug] Current batch of media processed. Will check again in 1000ms 05:29:33.918 [debug] Current batch of media processed. Will check again in 1000ms 05:29:34.868 [debug] Current batch of media processed. Will check again in 1000ms 05:29:34.919 [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" => 567, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e021300_Sam Altman said what???.mp4", "id" => "pfknyZhiMnU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=pfknyZhiMnU", "playlist_index" => 10, "timestamp" => 1770987684, "title" => "Sam Altman said what???", "upload_date" => "20260213"} 05:29:34.920 [debug] QUERY OK source="sources" db=0.4ms idle=405.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:29:34.921 [debug] QUERY OK source="sources" db=0.3ms idle=406.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] 05:29:34.926 [debug] QUERY OK source="media_items" db=4.3ms idle=407.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-13 13:01:24Z], 37] 05:29:34.928 [debug] QUERY OK source="media_items" db=1.5ms idle=411.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", "Sam Altman said what???", "35bb3df4-2dba-473c-929b-0017f0a69c34", "pfknyZhiMnU", 567, false, "https://www.youtube.com/watch?v=pfknyZhiMnU", 10, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e021300_Sam Altman said what???.mp4", false, false, false, 37, [], 98, ~U[2026-02-13 13:01:24Z], ~U[2026-03-01 11:29:34Z], ~U[2026-03-01 11:29:34Z], "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", "Sam Altman said what???", "pfknyZhiMnU", 567, false, "https://www.youtube.com/watch?v=pfknyZhiMnU", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e021300_Sam Altman said what???.mp4", false, 37, ~U[2026-02-13 13:01:24Z]] 05:29:34.929 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=83.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] 05:29:34.930 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 05:29:34.931 [debug] QUERY OK source="media_items" db=0.5ms idle=9.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 [2257862] 05:29:34.931 [debug] Current batch of media processed. Will check again in 1000ms 05:29:35.869 [debug] Current batch of media processed. Will check again in 1000ms 05:29:35.931 [debug] Current batch of media processed. Will check again in 1000ms 05:29:36.870 [debug] Current batch of media processed. Will check again in 1000ms 05:29:36.932 [debug] Current batch of media processed. Will check again in 1000ms 05:29:37.871 [debug] Current batch of media processed. Will check again in 1000ms 05:29:37.933 [debug] Current batch of media processed. Will check again in 1000ms 05:29:38.872 [debug] Current batch of media processed. Will check again in 1000ms 05:29:38.934 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "LIVE EVENT -- https://www.youtube.com/watch?v=0DunWr0wn2A\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" => 571, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e021100_Be Careful w⧸ Skills.mp4", "id" => "Y2otN_NY75Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Y2otN_NY75Y", "playlist_index" => 11, "timestamp" => 1770814865, "title" => "Be Careful w/ Skills", "upload_date" => "20260211"} 05:29:38.935 [debug] QUERY OK source="sources" db=0.4ms idle=420.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:29:38.936 [debug] QUERY OK source="sources" db=0.3ms idle=421.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:29:38.942 [debug] QUERY OK source="media_items" db=5.3ms idle=421.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-11 13:01:05Z], 37] 05:29:38.944 [debug] QUERY OK source="media_items" db=1.8ms idle=427.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" ["LIVE EVENT -- https://www.youtube.com/watch?v=0DunWr0wn2A\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", "Be Careful w/ Skills", "65d28371-5b29-4ae6-8df0-787cbd6c3ab3", "Y2otN_NY75Y", 571, false, "https://www.youtube.com/watch?v=Y2otN_NY75Y", 11, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e021100_Be Careful w⧸ Skills.mp4", false, false, false, 37, [], 98, ~U[2026-02-11 13:01:05Z], ~U[2026-03-01 11:29:38Z], ~U[2026-03-01 11:29:38Z], "LIVE EVENT -- https://www.youtube.com/watch?v=0DunWr0wn2A\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", "Be Careful w/ Skills", "Y2otN_NY75Y", 571, false, "https://www.youtube.com/watch?v=Y2otN_NY75Y", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e021100_Be Careful w⧸ Skills.mp4", false, 37, ~U[2026-02-11 13:01:05Z]] 05:29:38.945 [debug] QUERY OK source="sources" db=0.4ms 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] 05:29:38.946 [debug] QUERY OK source="media_profiles" db=0.3ms idle=10.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] 05:29:38.946 [debug] QUERY OK source="media_items" db=0.4ms idle=10.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 [2238476] 05:29:38.947 [debug] Current batch of media processed. Will check again in 1000ms 05:29:39.873 [debug] Current batch of media processed. Will check again in 1000ms 05:29:39.947 [debug] Current batch of media processed. Will check again in 1000ms 05:29:40.695 [info] {"source":"oban","duration":18567,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:29:40.874 [debug] Current batch of media processed. Will check again in 1000ms 05:29:40.948 [debug] Current batch of media processed. Will check again in 1000ms 05:29:41.875 [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" => 1, "timestamp" => 1772150862, "title" => "The Pentagon Is Forcing Anthropic To Make AI Weapon Systems", "upload_date" => "20260227"} 05:29:41.876 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1361.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:29:41.878 [debug] QUERY OK source="sources" db=0.5ms idle=1362.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] 05:29:41.882 [debug] QUERY OK source="media_items" db=3.9ms queue=0.1ms idle=1183.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-27 00:07:42Z], 45] 05:29:41.885 [debug] QUERY OK source="media_items" db=2.3ms 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" ["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", "bd48d26a-bbca-4e1c-b13f-8ba3417ed26d", "GSRXY3_yeN4", 523, false, "https://www.youtube.com/watch?v=GSRXY3_yeN4", 1, "/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-03-01 11:29:41Z], ~U[2026-03-01 11:29:41Z], "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]] 05:29:41.886 [debug] QUERY OK source="sources" db=0.5ms idle=21.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:29:41.887 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=10.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] 05:29:41.888 [debug] QUERY OK source="media_items" db=0.4ms idle=10.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] 05:29:41.888 [debug] Current batch of media processed. Will check again in 1000ms 05:29:41.949 [debug] Current batch of media processed. Will check again in 1000ms 05:29:42.889 [debug] Current batch of media processed. Will check again in 1000ms 05:29:42.950 [debug] Current batch of media processed. Will check again in 1000ms 05:29:43.890 [debug] Current batch of media processed. Will check again in 1000ms 05:29:43.951 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Sources\n* https://youtu.be/h3JfOxx6Hh4?si=JBjxLo9MDcmBGEiO\n* https://openai.com/index/a-business-that-scales-with-the-value-of-intelligence/\n* https://qazinform.com/news/openai-sees-paid-chatgpt-users-reaching-220-million-by-2030-2e4e7a#:~:text=The%20projection%20reflects%20growing%20global,for%20users%20in%20several%20countries.\n* https://docs.google.com/spreadsheets/d/1BT6vHxS1z_B-C5Cc2xE9AmSWF-0r_yssndN0ZCPtNJ8/edit?gid=0#gid=0\n* https://www.youtube.com/watch?v=FVRHTWWEIz4\n* https://www.reuters.com/technology/openai-projected-least-220-million-people-will-pay-chatgpt-by-2030-information-2025-11-26/\n* https://www.youtube.com/watch?v=DB9mjd-65gw&t=978s\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" => 774, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020900_OpenAI's New Era.mp4", "id" => "jUiZg4LQgiY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=jUiZg4LQgiY", "playlist_index" => 12, "timestamp" => 1770638490, "title" => "OpenAI's New Era", "upload_date" => "20260209"} 05:29:43.952 [debug] QUERY OK source="sources" db=0.4ms idle=437.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:29:43.953 [debug] QUERY OK source="sources" db=0.2ms idle=438.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] 05:29:43.959 [debug] QUERY OK source="media_items" db=5.8ms idle=439.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 12:01:30Z], 37] 05:29:43.963 [debug] QUERY OK source="media_items" db=2.7ms idle=445.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* https://youtu.be/h3JfOxx6Hh4?si=JBjxLo9MDcmBGEiO\n* https://openai.com/index/a-business-that-scales-with-the-value-of-intelligence/\n* https://qazinform.com/news/openai-sees-paid-chatgpt-users-reaching-220-million-by-2030-2e4e7a#:~:text=The%20projection%20reflects%20growing%20global,for%20users%20in%20several%20countries.\n* https://docs.google.com/spreadsheets/d/1BT6vHxS1z_B-C5Cc2xE9AmSWF-0r_yssndN0ZCPtNJ8/edit?gid=0#gid=0\n* https://www.youtube.com/watch?v=FVRHTWWEIz4\n* https://www.reuters.com/technology/openai-projected-least-220-million-people-will-pay-chatgpt-by-2030-information-2025-11-26/\n* https://www.youtube.com/watch?v=DB9mjd-65gw&t=978s\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", "OpenAI's New Era", "dac02ece-5b6a-475c-98c1-2a4e870915bd", "jUiZg4LQgiY", 774, false, "https://www.youtube.com/watch?v=jUiZg4LQgiY", 12, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020900_OpenAI's New Era.mp4", false, false, false, 37, [], 98, ~U[2026-02-09 12:01:30Z], ~U[2026-03-01 11:29:43Z], ~U[2026-03-01 11:29:43Z], "Sources\n* https://youtu.be/h3JfOxx6Hh4?si=JBjxLo9MDcmBGEiO\n* https://openai.com/index/a-business-that-scales-with-the-value-of-intelligence/\n* https://qazinform.com/news/openai-sees-paid-chatgpt-users-reaching-220-million-by-2030-2e4e7a#:~:text=The%20projection%20reflects%20growing%20global,for%20users%20in%20several%20countries.\n* https://docs.google.com/spreadsheets/d/1BT6vHxS1z_B-C5Cc2xE9AmSWF-0r_yssndN0ZCPtNJ8/edit?gid=0#gid=0\n* https://www.youtube.com/watch?v=FVRHTWWEIz4\n* https://www.reuters.com/technology/openai-projected-least-220-million-people-will-pay-chatgpt-by-2030-information-2025-11-26/\n* https://www.youtube.com/watch?v=DB9mjd-65gw&t=978s\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", "OpenAI's New Era", "jUiZg4LQgiY", 774, false, "https://www.youtube.com/watch?v=jUiZg4LQgiY", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020900_OpenAI's New Era.mp4", false, 37, ~U[2026-02-09 12:01:30Z]] 05:29:43.964 [debug] QUERY OK source="sources" db=0.4ms idle=93.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:29:43.964 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=11.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] 05:29:43.965 [debug] QUERY OK source="media_items" db=0.6ms idle=11.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 [2223599] 05:29:43.966 [debug] Current batch of media processed. Will check again in 1000ms 05:29:44.891 [debug] Current batch of media processed. Will check again in 1000ms 05:29:44.966 [debug] Current batch of media processed. Will check again in 1000ms 05:29:45.892 [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" => 2, "timestamp" => 1771971511, "title" => "Facebook Will Simulate Dead Users With AI", "upload_date" => "20260224"} 05:29:45.893 [debug] QUERY OK source="sources" db=0.3ms idle=378.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:29:45.894 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=379.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:29:45.898 [debug] QUERY OK source="media_items" db=3.5ms queue=0.1ms idle=380.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-24 22:18:31Z], 45] 05:29:45.902 [debug] QUERY OK source="media_items" db=2.5ms idle=384.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 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", "22c3c01c-a42a-4b47-93dd-daebc96a6e97", "eRyOdsLaPKE", 511, false, "https://www.youtube.com/watch?v=eRyOdsLaPKE", 2, "/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-03-01 11:29:45Z], ~U[2026-03-01 11:29:45Z], "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]] 05:29:45.903 [debug] QUERY OK source="sources" db=0.5ms idle=27.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:29:45.904 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=9.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:29:45.905 [debug] QUERY OK source="media_items" db=0.6ms idle=9.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 [2347026] 05:29:45.905 [debug] Current batch of media processed. Will check again in 1000ms 05:29:45.967 [debug] Current batch of media processed. Will check again in 1000ms 05:29:46.906 [debug] Current batch of media processed. Will check again in 1000ms 05:29:46.968 [debug] Current batch of media processed. Will check again in 1000ms 05:29:47.907 [debug] Current batch of media processed. Will check again in 1000ms 05:29:47.969 [debug] Current batch of media processed. Will check again in 1000ms 05:29:48.908 [debug] Current batch of media processed. Will check again in 1000ms 05:29:48.970 [debug] Current batch of media processed. Will check again in 1000ms 05:29:49.909 [debug] Current batch of media processed. Will check again in 1000ms 05:29:49.971 [debug] Current batch of media processed. Will check again in 1000ms 05:29:50.910 [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" => 3, "timestamp" => 1771548693, "title" => "Discord Will Be Used To Spy On You", "upload_date" => "20260220"} 05:29:50.911 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1396.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] 05:29:50.912 [debug] QUERY OK source="sources" db=0.3ms idle=1397.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:29:50.915 [debug] QUERY OK source="media_items" db=3.0ms idle=1397.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] 05:29:50.918 [debug] QUERY OK source="media_items" db=2.0ms idle=1027.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 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", "effe7d15-1115-417f-a1fb-95e3ec521c69", "uBibexTkY-M", 504, false, "https://www.youtube.com/watch?v=uBibexTkY-M", 3, "/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-03-01 11:29:50Z], ~U[2026-03-01 11:29:50Z], "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]] 05:29:50.919 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=27.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] 05:29:50.920 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 05:29:50.921 [debug] QUERY OK source="media_items" db=0.5ms 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 [2308517] 05:29:50.921 [debug] Current batch of media processed. Will check again in 1000ms 05:29:50.972 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "ssh terminal.shop \n\nThis week on The Standup, the crew digs into the chaos of AI “skills,” agent tooling, and the growing security risks nobody seems to be paying attention to. From hallucinated commands spreading across GitHub to supply-chain nightmares and wild real-world examples, it’s a funny, slightly terrifying look at where AI tooling is headed. Laughs, hot takes, and a reality check for anyone letting agents run loose on their machine.\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\n00:00:00 - Intro\n00:04:01 - Terminal Coffee\n00:04:34 - Skills & Hallucinated npx Commands\n00:14:26 - Hiding commands in Skill.md\n00:18:52 - What Would Elon Do?\n00:24:46 - Skills.sh\n00:33:00 - AI Social Networks\n00:35:41 - Simulation Theory\n00:40:31 - Moltbook\n00:47:50 - Outro", "duration" => 2891, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020800_AGI Achieved?! | TheStandup.mp4", "id" => "_CzEmKTk5Rs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=_CzEmKTk5Rs", "playlist_index" => 13, "timestamp" => 1770559253, "title" => "AGI Achieved?! | TheStandup", "upload_date" => "20260208"} 05:29:50.974 [debug] QUERY OK source="sources" db=0.8ms idle=57.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] 05:29:50.975 [debug] QUERY OK source="sources" db=0.7ms queue=0.2ms idle=56.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:29:50.981 [debug] QUERY OK source="media_items" db=5.6ms idle=56.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-08 14:00:53Z], 37] 05:29:50.985 [debug] QUERY OK source="media_items" db=3.0ms idle=61.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" ["ssh terminal.shop \n\nThis week on The Standup, the crew digs into the chaos of AI “skills,” agent tooling, and the growing security risks nobody seems to be paying attention to. From hallucinated commands spreading across GitHub to supply-chain nightmares and wild real-world examples, it’s a funny, slightly terrifying look at where AI tooling is headed. Laughs, hot takes, and a reality check for anyone letting agents run loose on their machine.\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\n00:00:00 - Intro\n00:04:01 - Terminal Coffee\n00:04:34 - Skills & Hallucinated npx Commands\n00:14:26 - Hiding commands in Skill.md\n00:18:52 - What Would Elon Do?\n00:24:46 - Skills.sh\n00:33:00 - AI Social Networks\n00:35:41 - Simulation Theory\n00:40:31 - Moltbook\n00:47:50 - Outro", "AGI Achieved?! | TheStandup", "c67cf922-db02-42ea-b7ce-e60b67f78ea0", "_CzEmKTk5Rs", 2891, false, "https://www.youtube.com/watch?v=_CzEmKTk5Rs", 13, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020800_AGI Achieved?! | TheStandup.mp4", false, false, false, 37, [], 98, ~U[2026-02-08 14:00:53Z], ~U[2026-03-01 11:29:50Z], ~U[2026-03-01 11:29:50Z], "ssh terminal.shop \n\nThis week on The Standup, the crew digs into the chaos of AI “skills,” agent tooling, and the growing security risks nobody seems to be paying attention to. From hallucinated commands spreading across GitHub to supply-chain nightmares and wild real-world examples, it’s a funny, slightly terrifying look at where AI tooling is headed. Laughs, hot takes, and a reality check for anyone letting agents run loose on their machine.\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\n00:00:00 - Intro\n00:04:01 - Terminal Coffee\n00:04:34 - Skills & Hallucinated npx Commands\n00:14:26 - Hiding commands in Skill.md\n00:18:52 - What Would Elon Do?\n00:24:46 - Skills.sh\n00:33:00 - AI Social Networks\n00:35:41 - Simulation Theory\n00:40:31 - Moltbook\n00:47:50 - Outro", "AGI Achieved?! | TheStandup", "_CzEmKTk5Rs", 2891, false, "https://www.youtube.com/watch?v=_CzEmKTk5Rs", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020800_AGI Achieved?! | TheStandup.mp4", false, 37, ~U[2026-02-08 14:00:53Z]] 05:29:50.986 [debug] QUERY OK source="sources" db=0.7ms idle=64.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:29:50.987 [debug] QUERY OK source="media_profiles" db=0.5ms idle=13.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] 05:29:50.989 [debug] QUERY OK source="media_items" db=0.7ms idle=12.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 [2219264] 05:29:50.989 [debug] Current batch of media processed. Will check again in 1000ms 05:29:51.922 [debug] Current batch of media processed. Will check again in 1000ms 05:29:51.990 [debug] Current batch of media processed. Will check again in 1000ms 05:29:52.923 [debug] Current batch of media processed. Will check again in 1000ms 05:29:52.991 [debug] Current batch of media processed. Will check again in 1000ms 05:29:53.924 [debug] Current batch of media processed. Will check again in 1000ms 05:29:53.992 [debug] Current batch of media processed. Will check again in 1000ms 05:29:54.925 [debug] Current batch of media processed. Will check again in 1000ms 05:29:54.993 [debug] Current batch of media processed. Will check again in 1000ms 05:29:55.927 [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" => 4, "timestamp" => 1771108411, "title" => "Chinese Hackers Hijack Notepad++ Updates", "upload_date" => "20260214"} 05:29:55.928 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1413.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:29:55.930 [debug] QUERY OK source="sources" db=0.6ms queue=0.2ms idle=1414.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] 05:29:55.936 [debug] QUERY OK source="media_items" db=5.6ms queue=0.1ms idle=1415.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] 05:29:55.942 [debug] QUERY OK source="media_items" db=4.3ms 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" ["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", "c99cccc7-c572-4422-992e-7a7aaa4de1fe", "MGisfDrdbGo", 501, false, "https://www.youtube.com/watch?v=MGisfDrdbGo", 4, "/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-03-01 11:29:55Z], ~U[2026-03-01 11:29:55Z], "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]] 05:29:55.943 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=30.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:29:55.945 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.1ms idle=15.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] 05:29:55.947 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=15.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 [2268722] 05:29:55.947 [debug] Current batch of media processed. Will check again in 1000ms 05:29:55.994 [debug] Current batch of media processed. Will check again in 1000ms 05:29:56.948 [debug] Current batch of media processed. Will check again in 1000ms 05:29:56.995 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "### Source\nhttps://lars.ingebrigtsen.no/2026/02/02/whats-up-with-all-those-equals-signs-anyway/\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" => 429, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020700_Why Epstein emails have so many ='s.mp4", "id" => "SVVnkNZWJhk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=SVVnkNZWJhk", "playlist_index" => 14, "timestamp" => 1770428037, "title" => "Why Epstein emails have so many ='s", "upload_date" => "20260207"} 05:29:56.997 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1054.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] 05:29:56.998 [debug] QUERY OK source="sources" db=0.4ms idle=1053.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] 05:29:57.007 [debug] QUERY OK source="media_items" db=8.7ms queue=0.1ms idle=1053.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-07 01:33:57Z], 37] 05:29:57.012 [debug] QUERY OK source="media_items" db=3.5ms queue=0.1ms idle=1061.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" ["### Source\nhttps://lars.ingebrigtsen.no/2026/02/02/whats-up-with-all-those-equals-signs-anyway/\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", "Why Epstein emails have so many ='s", "1f443098-ca9b-4819-a10f-688b65ced7f8", "SVVnkNZWJhk", 429, false, "https://www.youtube.com/watch?v=SVVnkNZWJhk", 14, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020700_Why Epstein emails have so many ='s.mp4", false, false, false, 37, [], 98, ~U[2026-02-07 01:33:57Z], ~U[2026-03-01 11:29:57Z], ~U[2026-03-01 11:29:57Z], "### Source\nhttps://lars.ingebrigtsen.no/2026/02/02/whats-up-with-all-those-equals-signs-anyway/\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", "Why Epstein emails have so many ='s", "SVVnkNZWJhk", 429, false, "https://www.youtube.com/watch?v=SVVnkNZWJhk", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020700_Why Epstein emails have so many ='s.mp4", false, 37, ~U[2026-02-07 01:33:57Z]] 05:29:57.014 [debug] QUERY OK source="sources" db=0.8ms queue=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] 05:29:57.015 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.3ms idle=17.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] 05:29:57.017 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=18.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 [2207307] 05:29:57.018 [debug] Current batch of media processed. Will check again in 1000ms 05:29:57.949 [debug] Current batch of media processed. Will check again in 1000ms 05:29:58.019 [debug] Current batch of media processed. Will check again in 1000ms 05:29:58.950 [debug] Current batch of media processed. Will check again in 1000ms 05:29:59.020 [debug] Current batch of media processed. Will check again in 1000ms 05:29:59.951 [debug] Current batch of media processed. Will check again in 1000ms 05:30:00.021 [debug] Current batch of media processed. Will check again in 1000ms 05:30:00.096 [info] {"source":"oban","duration":506,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:30:00.952 [debug] Current batch of media processed. Will check again in 1000ms 05:30:01.022 [debug] Current batch of media processed. Will check again in 1000ms 05:30:01.953 [debug] Current batch of media processed. Will check again in 1000ms 05:30:02.023 [debug] Current batch of media processed. Will check again in 1000ms 05:30:02.954 [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" => 5, "timestamp" => 1770336498, "title" => "Stop Using BitLocker", "upload_date" => "20260206"} 05:30:02.955 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1014.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] 05:30:02.956 [debug] QUERY OK source="sources" db=0.5ms 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" = ?) [45] 05:30:02.961 [debug] QUERY OK source="media_items" db=3.7ms queue=0.1ms idle=442.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] 05:30:02.964 [debug] QUERY OK source="media_items" db=2.3ms idle=446.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 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", "3c1bfc9e-2212-448e-96a4-455992c83701", "I2qjQawDqXs", 540, false, "https://www.youtube.com/watch?v=I2qjQawDqXs", 5, "/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-03-01 11:30:02Z], ~U[2026-03-01 11:30:02Z], "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]] 05:30:02.965 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [45] 05:30:02.966 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=9.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:30:02.967 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=9.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] 05:30:02.967 [debug] Current batch of media processed. Will check again in 1000ms 05:30:03.024 [debug] Current batch of media processed. Will check again in 1000ms 05:30:03.968 [debug] Current batch of media processed. Will check again in 1000ms 05:30:04.025 [debug] Current batch of media processed. Will check again in 1000ms 05:30:04.969 [debug] Current batch of media processed. Will check again in 1000ms 05:30:05.026 [debug] Current batch of media processed. Will check again in 1000ms 05:30:05.970 [debug] Current batch of media processed. Will check again in 1000ms 05:30:06.027 [debug] Current batch of media processed. Will check again in 1000ms 05:30:06.972 [debug] Current batch of media processed. Will check again in 1000ms 05:30:07.033 [debug] Current batch of media processed. Will check again in 1000ms 05:30:07.975 [debug] Current batch of media processed. Will check again in 1000ms 05:30:08.034 [debug] Current batch of media processed. Will check again in 1000ms 05:30:08.976 [debug] Current batch of media processed. Will check again in 1000ms 05:30:09.035 [debug] Current batch of media processed. Will check again in 1000ms 05:30:09.978 [debug] Current batch of media processed. Will check again in 1000ms 05:30:10.036 [debug] Current batch of media processed. Will check again in 1000ms 05:30:10.749 [info] {"source":"oban","duration":53497,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:30:10.981 [debug] Current batch of media processed. Will check again in 1000ms 05:30:11.037 [debug] Current batch of media processed. Will check again in 1000ms 05:30:11.982 [debug] Current batch of media processed. Will check again in 1000ms 05:30:12.038 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "oh you want real coffee? ssh terminal.shop\n\noh you dont know how to ssh or use the terminal? well... then this coffee isn't for you\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\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" => 470, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020600_SAME DAY: Opus 4.6 AND Chat GPT 5.3!.mp4", "id" => "wN13YeqEaqk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=wN13YeqEaqk", "playlist_index" => 15, "timestamp" => 1770382196, "title" => "SAME DAY: Opus 4.6 AND Chat GPT 5.3!", "upload_date" => "20260206"} 05:30:12.040 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1524.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:30:12.041 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1525.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:30:12.050 [debug] QUERY OK source="media_items" db=8.1ms queue=0.1ms idle=1292.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-06 12:49:56Z], 37] 05:30:12.055 [debug] QUERY OK source="media_items" db=3.6ms queue=0.1ms idle=1026.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" ["oh you want real coffee? ssh terminal.shop\n\noh you dont know how to ssh or use the terminal? well... then this coffee isn't for you\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "SAME DAY: Opus 4.6 AND Chat GPT 5.3!", "a317308b-ea93-433a-b2d2-12d56b5e4bc7", "wN13YeqEaqk", 470, false, "https://www.youtube.com/watch?v=wN13YeqEaqk", 15, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020600_SAME DAY: Opus 4.6 AND Chat GPT 5.3!.mp4", false, false, false, 37, [], 98, ~U[2026-02-06 12:49:56Z], ~U[2026-03-01 11:30:12Z], ~U[2026-03-01 11:30:12Z], "oh you want real coffee? ssh terminal.shop\n\noh you dont know how to ssh or use the terminal? well... then this coffee isn't for you\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "SAME DAY: Opus 4.6 AND Chat GPT 5.3!", "wN13YeqEaqk", 470, false, "https://www.youtube.com/watch?v=wN13YeqEaqk", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020600_SAME DAY: Opus 4.6 AND Chat GPT 5.3!.mp4", false, 37, ~U[2026-02-06 12:49:56Z]] 05:30:12.056 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=27.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:30:12.057 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.1ms idle=16.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] 05:30:12.059 [debug] QUERY OK source="media_items" db=0.7ms idle=16.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 [2203177] 05:30:12.059 [debug] Current batch of media processed. Will check again in 1000ms 05:30:12.983 [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" => 6, "timestamp" => 1769216799, "title" => "Photoshop Finally Works on Linux", "upload_date" => "20260124"} 05:30:12.987 [debug] QUERY OK source="sources" db=2.6ms queue=0.1ms idle=934.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:30:12.988 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=932.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] 05:30:12.993 [debug] QUERY OK source="media_items" db=4.1ms idle=932.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-24 01:06:39Z], 45] 05:30:13.003 [debug] QUERY OK source="media_items" db=9.3ms idle=936.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 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", "25c3b220-bb2e-4b15-8e55-0ef29e89d45e", "aaTvRDsdy0s", 915, false, "https://www.youtube.com/watch?v=aaTvRDsdy0s", 6, "/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-03-01 11:30:12Z], ~U[2026-03-01 11:30:12Z], "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]] 05:30:13.004 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=944.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:30:13.005 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=17.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] 05:30:13.007 [debug] QUERY OK source="media_items" db=0.8ms idle=17.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 [2095473] 05:30:13.007 [debug] Current batch of media processed. Will check again in 1000ms 05:30:13.060 [debug] Current batch of media processed. Will check again in 1000ms 05:30:14.008 [debug] Current batch of media processed. Will check again in 1000ms 05:30:14.061 [debug] Current batch of media processed. Will check again in 1000ms 05:30:15.009 [debug] Current batch of media processed. Will check again in 1000ms 05:30:15.062 [debug] Current batch of media processed. Will check again in 1000ms 05:30:16.010 [debug] Current batch of media processed. Will check again in 1000ms 05:30:16.063 [debug] Current batch of media processed. Will check again in 1000ms 05:30:17.011 [debug] Current batch of media processed. Will check again in 1000ms 05:30:17.064 [debug] Current batch of media processed. Will check again in 1000ms 05:30:18.012 [debug] Current batch of media processed. Will check again in 1000ms 05:30:18.065 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Thanks to this week's sponsor: Code Rabbit\nhttps://coderabbit.link/primeagen-vscode\n\nIf 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.\n\n\n\n\n00:00:00 - Intro\n00:02:16 - The RAM Situation\n00:04:25 - Merge Cop Ep 3\n00:06:16 - RAM FABS\n00:07:19 - DDR5 not for the consumer\n00:10:30 - Primes Windows Issues\n00:12:43 - The Great RAMming\n00:35:40 - Is Other hardware pricing effected\n00:40:46 - Is Renting a computer the future?\n00:44:40 - What about Phones\n00:48:40 - Hiring at LTT in an AI world\n00:53:08 - Developers at LTT\n01:02:04 - Is Tech Youtube Changing?\n01:17:34 - Year of the Linux Desktop\n01:19:08 - Outro", "duration" => 4808, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020300_Luke talks RAM Pricing, Tech Youtube and LTT Developer hiring process | The Standup.mp4", "id" => "kD7CRXRbcrw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=kD7CRXRbcrw", "playlist_index" => 16, "timestamp" => 1770127280, "title" => "Luke talks RAM Pricing, Tech Youtube and LTT Developer hiring process | The Standup", "upload_date" => "20260203"} 05:30:18.066 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1551.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:30:18.067 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1552.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:30:18.074 [debug] QUERY OK source="media_items" db=6.0ms queue=0.1ms idle=1553.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-03 14:01:20Z], 37] 05:30:18.078 [debug] QUERY OK source="media_items" db=2.7ms queue=0.1ms idle=1027.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" ["Thanks to this week's sponsor: Code Rabbit\nhttps://coderabbit.link/primeagen-vscode\n\nIf 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.\n\n\n\n\n00:00:00 - Intro\n00:02:16 - The RAM Situation\n00:04:25 - Merge Cop Ep 3\n00:06:16 - RAM FABS\n00:07:19 - DDR5 not for the consumer\n00:10:30 - Primes Windows Issues\n00:12:43 - The Great RAMming\n00:35:40 - Is Other hardware pricing effected\n00:40:46 - Is Renting a computer the future?\n00:44:40 - What about Phones\n00:48:40 - Hiring at LTT in an AI world\n00:53:08 - Developers at LTT\n01:02:04 - Is Tech Youtube Changing?\n01:17:34 - Year of the Linux Desktop\n01:19:08 - Outro", "Luke talks RAM Pricing, Tech Youtube and LTT Developer hiring process | The Standup", "0c6ea96b-c71d-49e3-9e9d-ed792db57945", "kD7CRXRbcrw", 4808, false, "https://www.youtube.com/watch?v=kD7CRXRbcrw", 16, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020300_Luke talks RAM Pricing, Tech Youtube and LTT Developer hiring process | The Standup.mp4", false, false, false, 37, [], 97, ~U[2026-02-03 14:01:20Z], ~U[2026-03-01 11:30:18Z], ~U[2026-03-01 11:30:18Z], "Thanks to this week's sponsor: Code Rabbit\nhttps://coderabbit.link/primeagen-vscode\n\nIf 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.\n\n\n\n\n00:00:00 - Intro\n00:02:16 - The RAM Situation\n00:04:25 - Merge Cop Ep 3\n00:06:16 - RAM FABS\n00:07:19 - DDR5 not for the consumer\n00:10:30 - Primes Windows Issues\n00:12:43 - The Great RAMming\n00:35:40 - Is Other hardware pricing effected\n00:40:46 - Is Renting a computer the future?\n00:44:40 - What about Phones\n00:48:40 - Hiring at LTT in an AI world\n00:53:08 - Developers at LTT\n01:02:04 - Is Tech Youtube Changing?\n01:17:34 - Year of the Linux Desktop\n01:19:08 - Outro", "Luke talks RAM Pricing, Tech Youtube and LTT Developer hiring process | The Standup", "kD7CRXRbcrw", 4808, false, "https://www.youtube.com/watch?v=kD7CRXRbcrw", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020300_Luke talks RAM Pricing, Tech Youtube and LTT Developer hiring process | The Standup.mp4", false, 37, ~U[2026-02-03 14:01:20Z]] 05:30:18.079 [debug] QUERY OK source="sources" db=0.6ms 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] 05:30:18.080 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=12.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] 05:30:18.081 [debug] QUERY OK source="media_items" db=0.7ms idle=13.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 [2179566] 05:30:18.081 [debug] Current batch of media processed. Will check again in 1000ms 05:30:19.013 [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" => 7, "timestamp" => 1768678789, "title" => "TuxMate Makes Linux Desktop Setup a Breeze", "upload_date" => "20260117"} 05:30:19.015 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=940.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:30:19.016 [debug] QUERY OK source="sources" db=0.5ms idle=938.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] 05:30:19.021 [debug] QUERY OK source="media_items" db=4.2ms idle=937.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] 05:30:19.025 [debug] QUERY OK source="media_items" db=2.7ms idle=941.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", "e91bf294-1080-4896-9504-062594244b5c", "FyejToP1cjA", 659, false, "https://www.youtube.com/watch?v=FyejToP1cjA", 7, "/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-03-01 11:30:19Z], ~U[2026-03-01 11:30:19Z], "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]] 05:30:19.026 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=943.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:30:19.027 [debug] QUERY OK source="media_profiles" db=0.3ms queue=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] 05:30:19.028 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=10.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 [2045180] 05:30:19.028 [debug] Current batch of media processed. Will check again in 1000ms 05:30:19.082 [debug] Current batch of media processed. Will check again in 1000ms 05:30:20.029 [debug] Current batch of media processed. Will check again in 1000ms 05:30:20.083 [debug] Current batch of media processed. Will check again in 1000ms 05:30:21.030 [debug] Current batch of media processed. Will check again in 1000ms 05:30:21.084 [debug] Current batch of media processed. Will check again in 1000ms 05:30:22.032 [debug] Current batch of media processed. Will check again in 1000ms 05:30:22.085 [debug] Current batch of media processed. Will check again in 1000ms 05:30:23.033 [debug] Current batch of media processed. Will check again in 1000ms 05:30:23.086 [debug] Current batch of media processed. Will check again in 1000ms 05:30:24.034 [debug] Current batch of media processed. Will check again in 1000ms 05:30:24.087 [debug] Current batch of media processed. Will check again in 1000ms 05:30:25.035 [debug] Current batch of media processed. Will check again in 1000ms 05:30:25.088 [debug] Current batch of media processed. Will check again in 1000ms 05:30:26.036 [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" => 8, "timestamp" => 1767652650, "title" => "CachyOS Is Coming For Your Server", "upload_date" => "20260105"} 05:30:26.037 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1522.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:30:26.038 [debug] QUERY OK source="sources" db=0.3ms idle=1523.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:30:26.042 [debug] QUERY OK source="media_items" db=3.3ms idle=1523.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] 05:30:26.045 [debug] QUERY OK source="media_items" db=2.6ms queue=0.1ms idle=1527.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", "ccb39dd7-025d-4963-8f9f-ae69df70cb9a", "BgeLeT4CoyY", 651, false, "https://www.youtube.com/watch?v=BgeLeT4CoyY", 8, "/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-03-01 11:30:26Z], ~U[2026-03-01 11:30:26Z], "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]] 05:30:26.046 [debug] QUERY OK source="sources" db=0.6ms idle=966.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] 05:30:26.048 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms 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] 05:30:26.049 [debug] QUERY OK source="media_items" db=0.6ms 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 [1949827] 05:30:26.049 [debug] Current batch of media processed. Will check again in 1000ms 05:30:26.089 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "oh you want real coffee? ssh terminal.shop\n\noh you dont know how to ssh or use the terminal? well... then this coffee isn't for you\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\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" => 560, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020300_The Moltbook Experiment Failed.mp4", "id" => "6OXE65fjjsU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=6OXE65fjjsU", "playlist_index" => 17, "timestamp" => 1770122516, "title" => "The Moltbook Experiment Failed", "upload_date" => "20260203"} 05:30:26.090 [debug] QUERY OK source="sources" db=0.4ms idle=44.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] 05:30:26.091 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=44.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:30:26.098 [debug] QUERY OK source="media_items" db=6.1ms queue=0.1ms idle=43.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-03 12:41:56Z], 37] 05:30:26.101 [debug] QUERY OK source="media_items" db=2.4ms idle=49.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" ["oh you want real coffee? ssh terminal.shop\n\noh you dont know how to ssh or use the terminal? well... then this coffee isn't for you\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\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 Moltbook Experiment Failed", "e4e447ed-df72-4231-9113-83a15994acea", "6OXE65fjjsU", 560, false, "https://www.youtube.com/watch?v=6OXE65fjjsU", 17, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020300_The Moltbook Experiment Failed.mp4", false, false, false, 37, [], 97, ~U[2026-02-03 12:41:56Z], ~U[2026-03-01 11:30:26Z], ~U[2026-03-01 11:30:26Z], "oh you want real coffee? ssh terminal.shop\n\noh you dont know how to ssh or use the terminal? well... then this coffee isn't for you\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\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 Moltbook Experiment Failed", "6OXE65fjjsU", 560, false, "https://www.youtube.com/watch?v=6OXE65fjjsU", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020300_The Moltbook Experiment Failed.mp4", false, 37, ~U[2026-02-03 12:41:56Z]] 05:30:26.102 [debug] QUERY OK source="sources" db=0.4ms queue=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" = ?) [37] 05:30:26.103 [debug] QUERY OK source="media_profiles" db=0.5ms idle=12.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] 05:30:26.104 [debug] QUERY OK source="media_items" db=0.5ms idle=12.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 [2176029] 05:30:26.104 [debug] Current batch of media processed. Will check again in 1000ms 05:30:27.050 [debug] Current batch of media processed. Will check again in 1000ms 05:30:27.105 [debug] Current batch of media processed. Will check again in 1000ms 05:30:28.051 [debug] Current batch of media processed. Will check again in 1000ms 05:30:28.106 [debug] Current batch of media processed. Will check again in 1000ms 05:30:29.052 [debug] Current batch of media processed. Will check again in 1000ms 05:30:29.107 [debug] Current batch of media processed. Will check again in 1000ms 05:30:30.053 [debug] Current batch of media processed. Will check again in 1000ms 05:30:30.108 [debug] Current batch of media processed. Will check again in 1000ms 05:30:31.054 [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" => 9, "timestamp" => 1766623106, "title" => "When You Forget To Redact The Epstein Files", "upload_date" => "20251225"} 05:30:31.056 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1540.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] 05:30:31.057 [debug] QUERY OK source="sources" db=0.5ms idle=1542.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:30:31.062 [debug] QUERY OK source="media_items" db=4.3ms idle=1542.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-25 00:38:26Z], 45] 05:30:31.066 [debug] QUERY OK source="media_items" db=3.3ms idle=1547.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", "6228bff5-cfde-45de-ac01-c6b0bd814069", "6GNqGZXHXpo", 764, false, "https://www.youtube.com/watch?v=6GNqGZXHXpo", 9, "/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-03-01 11:30:31Z], ~U[2026-03-01 11:30:31Z], "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]] 05:30:31.067 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=969.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:30:31.068 [debug] QUERY OK source="media_profiles" db=0.4ms idle=11.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] 05:30:31.069 [debug] QUERY OK source="media_items" db=0.5ms idle=11.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 [1854320] 05:30:31.069 [debug] Current batch of media processed. Will check again in 1000ms 05:30:31.109 [debug] Current batch of media processed. Will check again in 1000ms 05:30:32.070 [debug] Current batch of media processed. Will check again in 1000ms 05:30:32.110 [debug] Current batch of media processed. Will check again in 1000ms 05:30:33.071 [debug] Current batch of media processed. Will check again in 1000ms 05:30:33.111 [debug] Current batch of media processed. Will check again in 1000ms 05:30:34.072 [debug] Current batch of media processed. Will check again in 1000ms 05:30:34.112 [debug] Current batch of media processed. Will check again in 1000ms 05:30:35.073 [debug] Current batch of media processed. Will check again in 1000ms 05:30:35.114 [debug] Current batch of media processed. Will check again in 1000ms 05:30:36.074 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how daily driving Linux and Linux gaming is becoming easier through all in one distros like Bazzite and helper software like iDescriptor to make things like using an iPhone with Linux easier.\n\nhttps://github.com/iDescriptor/iDescriptor\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" => 639, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e121600_Desktop Linux Just Keeps Winning.mp4", "id" => "ETI5g-dTB7Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ETI5g-dTB7Y", "playlist_index" => 10, "timestamp" => 1765925277, "title" => "Desktop Linux Just Keeps Winning", "upload_date" => "20251216"} 05:30:36.076 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1560.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:30:36.077 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1561.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] 05:30:36.081 [debug] QUERY OK source="media_items" db=3.6ms idle=1562.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-16 22:47:57Z], 45] 05:30:36.084 [debug] QUERY OK source="media_items" db=2.3ms idle=1566.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 daily driving Linux and Linux gaming is becoming easier through all in one distros like Bazzite and helper software like iDescriptor to make things like using an iPhone with Linux easier.\n\nhttps://github.com/iDescriptor/iDescriptor\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", "Desktop Linux Just Keeps Winning", "c04b4d8a-9bf7-4d37-80a3-400a712c97e2", "ETI5g-dTB7Y", 639, false, "https://www.youtube.com/watch?v=ETI5g-dTB7Y", 10, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e121600_Desktop Linux Just Keeps Winning.mp4", false, false, false, 45, [], 98, ~U[2025-12-16 22:47:57Z], ~U[2026-03-01 11:30:36Z], ~U[2026-03-01 11:30:36Z], "In this video I discuss how daily driving Linux and Linux gaming is becoming easier through all in one distros like Bazzite and helper software like iDescriptor to make things like using an iPhone with Linux easier.\n\nhttps://github.com/iDescriptor/iDescriptor\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", "Desktop Linux Just Keeps Winning", "ETI5g-dTB7Y", 639, false, "https://www.youtube.com/watch?v=ETI5g-dTB7Y", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e121600_Desktop Linux Just Keeps Winning.mp4", false, 45, ~U[2025-12-16 22:47:57Z]] 05:30:36.085 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=971.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] 05:30:36.085 [debug] QUERY OK source="media_profiles" db=0.4ms idle=9.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] 05:30:36.086 [debug] QUERY OK source="media_items" db=0.4ms 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 [1790256] 05:30:36.087 [debug] Current batch of media processed. Will check again in 1000ms 05:30:36.115 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "oh you want real coffee? ssh terminal.shop\n\noh you dont know how to ssh or use the terminal? well... then this coffee isn't for you\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\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" => 457, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020200_F*** you Microsoft.mp4", "id" => "d8WEzjDx4-E", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=d8WEzjDx4-E", "playlist_index" => 18, "timestamp" => 1770036047, "title" => "F*** you Microsoft", "upload_date" => "20260202"} 05:30:36.116 [debug] QUERY OK source="sources" db=0.3ms 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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [37] 05:30:36.117 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=31.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:30:36.123 [debug] QUERY OK source="media_items" db=5.6ms queue=0.1ms idle=31.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-02 12:40:47Z], 37] 05:30:36.126 [debug] QUERY OK source="media_items" db=2.1ms idle=37.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" ["oh you want real coffee? ssh terminal.shop\n\noh you dont know how to ssh or use the terminal? well... then this coffee isn't for you\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "F*** you Microsoft", "2f846c59-3346-4fb2-bab1-fce405ec8cb7", "d8WEzjDx4-E", 457, false, "https://www.youtube.com/watch?v=d8WEzjDx4-E", 18, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020200_F*** you Microsoft.mp4", false, false, false, 37, [], 97, ~U[2026-02-02 12:40:47Z], ~U[2026-03-01 11:30:36Z], ~U[2026-03-01 11:30:36Z], "oh you want real coffee? ssh terminal.shop\n\noh you dont know how to ssh or use the terminal? well... then this coffee isn't for you\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "F*** you Microsoft", "d8WEzjDx4-E", 457, false, "https://www.youtube.com/watch?v=d8WEzjDx4-E", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020200_F*** you Microsoft.mp4", false, 37, ~U[2026-02-02 12:40:47Z]] 05:30:36.127 [debug] QUERY OK source="sources" db=0.4ms idle=11.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:30:36.128 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=11.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] 05:30:36.129 [debug] QUERY OK source="media_items" db=0.5ms idle=11.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 [2167740] 05:30:36.129 [debug] Current batch of media processed. Will check again in 1000ms 05:30:37.087 [debug] Current batch of media processed. Will check again in 1000ms 05:30:37.130 [debug] Current batch of media processed. Will check again in 1000ms 05:30:38.088 [debug] Current batch of media processed. Will check again in 1000ms 05:30:38.132 [debug] Current batch of media processed. Will check again in 1000ms 05:30:39.089 [debug] Current batch of media processed. Will check again in 1000ms 05:30:39.133 [debug] Current batch of media processed. Will check again in 1000ms 05:30:40.090 [debug] Current batch of media processed. Will check again in 1000ms 05:30:40.134 [debug] Current batch of media processed. Will check again in 1000ms 05:30:40.778 [info] {"source":"oban","duration":27518,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 05:30:41.092 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss the Jolla Phone, a Linux smartphone with modern design and specifications, pre-order the Jolla phone using the link below.\n\nhttps://commerce.jolla.com/products/jolla-phone-preorder\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" => 853, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e120700_Jolla Phone - A Modern Linux Smart Phone.mp4", "id" => "0TLYLvGZUmA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=0TLYLvGZUmA", "playlist_index" => 11, "timestamp" => 1765121144, "title" => "Jolla Phone - A Modern Linux Smart Phone", "upload_date" => "20251207"} 05:30:41.093 [debug] QUERY OK source="sources" db=1.0ms queue=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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [45] 05:30:41.095 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=1579.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] 05:30:41.101 [debug] QUERY OK source="media_items" db=5.5ms idle=1580.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 15:25:44Z], 45] 05:30:41.106 [debug] QUERY OK source="media_items" db=3.9ms idle=971.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 the Jolla Phone, a Linux smartphone with modern design and specifications, pre-order the Jolla phone using the link below.\n\nhttps://commerce.jolla.com/products/jolla-phone-preorder\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", "Jolla Phone - A Modern Linux Smart Phone", "a5a35c0c-32f5-4b42-a973-452382e55cf9", "0TLYLvGZUmA", 853, false, "https://www.youtube.com/watch?v=0TLYLvGZUmA", 11, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e120700_Jolla Phone - A Modern Linux Smart Phone.mp4", false, false, false, 45, [], 98, ~U[2025-12-07 15:25:44Z], ~U[2026-03-01 11:30:41Z], ~U[2026-03-01 11:30:41Z], "In this video I discuss the Jolla Phone, a Linux smartphone with modern design and specifications, pre-order the Jolla phone using the link below.\n\nhttps://commerce.jolla.com/products/jolla-phone-preorder\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", "Jolla Phone - A Modern Linux Smart Phone", "0TLYLvGZUmA", 853, false, "https://www.youtube.com/watch?v=0TLYLvGZUmA", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e120700_Jolla Phone - A Modern Linux Smart Phone.mp4", false, 45, ~U[2025-12-07 15:25:44Z]] 05:30:41.109 [debug] QUERY OK source="sources" db=1.8ms queue=0.2ms idle=329.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:30:41.110 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms 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] 05:30:41.112 [debug] QUERY OK source="media_items" db=0.7ms idle=15.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 [1716490] 05:30:41.112 [debug] Current batch of media processed. Will check again in 1000ms 05:30:41.135 [debug] Current batch of media processed. Will check again in 1000ms 05:30:42.113 [debug] Current batch of media processed. Will check again in 1000ms 05:30:42.136 [debug] Current batch of media processed. Will check again in 1000ms 05:30:43.114 [debug] Current batch of media processed. Will check again in 1000ms 05:30:43.137 [debug] Current batch of media processed. Will check again in 1000ms 05:30:44.115 [debug] Current batch of media processed. Will check again in 1000ms 05:30:44.139 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://boot.dev/prime I have 2 courses, TCP to HTTP in Golang and 2 part Git course\nI think that boot is actually a great place to go learn and in the day of AI slop, you should take the time to learn and be effective\n\nhttps://GitHub.com/ThePrimeagen/99\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" => 705, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e013100_The Moltbook Situation.mp4", "id" => "2PWFj50DcZU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=2PWFj50DcZU", "playlist_index" => 19, "timestamp" => 1769853979, "title" => "The Moltbook Situation", "upload_date" => "20260131"} 05:30:44.140 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1624.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:30:44.141 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1625.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:30:44.148 [debug] QUERY OK source="media_items" db=7.1ms idle=1626.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-31 10:06:19Z], 37] 05:30:44.152 [debug] QUERY OK source="media_items" db=2.6ms idle=1008.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://boot.dev/prime I have 2 courses, TCP to HTTP in Golang and 2 part Git course\nI think that boot is actually a great place to go learn and in the day of AI slop, you should take the time to learn and be effective\n\nhttps://GitHub.com/ThePrimeagen/99\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 Moltbook Situation", "63c28b4c-abdd-4191-8eea-3d3db9465074", "2PWFj50DcZU", 705, false, "https://www.youtube.com/watch?v=2PWFj50DcZU", 19, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e013100_The Moltbook Situation.mp4", false, false, false, 37, [], 98, ~U[2026-01-31 10:06:19Z], ~U[2026-03-01 11:30:44Z], ~U[2026-03-01 11:30:44Z], "https://boot.dev/prime I have 2 courses, TCP to HTTP in Golang and 2 part Git course\nI think that boot is actually a great place to go learn and in the day of AI slop, you should take the time to learn and be effective\n\nhttps://GitHub.com/ThePrimeagen/99\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 Moltbook Situation", "2PWFj50DcZU", 705, false, "https://www.youtube.com/watch?v=2PWFj50DcZU", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e013100_The Moltbook Situation.mp4", false, 37, ~U[2026-01-31 10:06:19Z]] 05:30:44.153 [debug] QUERY OK source="sources" db=0.4ms queue=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 05:30:44.154 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.3ms idle=12.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] 05:30:44.155 [debug] QUERY OK source="media_items" db=0.6ms idle=11.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 [2154114] 05:30:44.155 [debug] Current batch of media processed. Will check again in 1000ms 05:30:44.257 [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/14/02/1402a759be51a659ff01693e549a6e7b4d1019c3dd6d173aced05817fac2e0f4.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/4e/6b/4e6bad005bc36b11a13f3bb894cda763c53735f1223a380fff43a4001c828010.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 05:30:44.273 [debug] Gracefully stopping file follower 05:30:44.274 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=124.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:30:44.275 [debug] QUERY OK source="sources" db=0.3ms idle=123.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:30:44.282 [debug] QUERY OK source="media_items" db=6.0ms queue=0.2ms idle=122.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 14:00:36Z], 37] 05:30:44.286 [debug] QUERY OK source="media_items" db=3.2ms idle=128.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" ["ssh terminal.shop \n\nWe break down the Open Claw insanity taking over Silicon Valley, including the head of AI safety accidentally nuking her own inbox, developers wiring autonomous agents directly into their lives, and the growing trend of giving AI sudo access like that’s a normal thing to do.\n\nTrash admits he’s vibe-coding secret iOS apps, including one that may or may not speedrun divorce. We debate AI personal assistants, spam calls, self-hosting myths, Mac mini bot farms, and whether anyone is actually running these models locally.\n\nWe also dissect the most awkward AI summit moment of the year: Sam Altman and Dario Amodei refusing to hold hands on stage next to the Prime Minister of India. Theater kid energy meets billion-dollar rivalry.\n\n\n\nRead the Harper’s piece we reference in this episode — a deep dive into AI startup culture and the hype surrounding it: https://harpers.org/archive/2026/03/childs-play-sam-kriss-ai-startup-roy-lee/\n\n\n00:00:00 - Intro\n00:02:20 - Terminal Coffee\n00:02:54 - AI Personal Assistants\n00:08:53 - Vibing iOS Apps\n00:11:38 - Bash's projects\n00:13:38 - Primes old Netflix codebase\n00:16:00 - Meta AI safety blunder\n00:21:01 - OpenClaw Mac Minis\n00:24:38 - AI Impact Summit", "AI Personal Assistants are ruining people lives | TheStandup", "657ec1fd-6f15-463f-ba1c-939011808908", "LpMn08jW02A", 2125, false, "https://www.youtube.com/watch?v=LpMn08jW02A", 1, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022800_AI Personal Assistants are ruining people lives | TheStandup.mp4", false, false, false, 37, [], 98, ~U[2026-02-28 14:00:36Z], ~U[2026-03-01 11:30:44Z], ~U[2026-03-01 11:30:44Z], "ssh terminal.shop \n\nWe break down the Open Claw insanity taking over Silicon Valley, including the head of AI safety accidentally nuking her own inbox, developers wiring autonomous agents directly into their lives, and the growing trend of giving AI sudo access like that’s a normal thing to do.\n\nTrash admits he’s vibe-coding secret iOS apps, including one that may or may not speedrun divorce. We debate AI personal assistants, spam calls, self-hosting myths, Mac mini bot farms, and whether anyone is actually running these models locally.\n\nWe also dissect the most awkward AI summit moment of the year: Sam Altman and Dario Amodei refusing to hold hands on stage next to the Prime Minister of India. Theater kid energy meets billion-dollar rivalry.\n\n\n\nRead the Harper’s piece we reference in this episode — a deep dive into AI startup culture and the hype surrounding it: https://harpers.org/archive/2026/03/childs-play-sam-kriss-ai-startup-roy-lee/\n\n\n00:00:00 - Intro\n00:02:20 - Terminal Coffee\n00:02:54 - AI Personal Assistants\n00:08:53 - Vibing iOS Apps\n00:11:38 - Bash's projects\n00:13:38 - Primes old Netflix codebase\n00:16:00 - Meta AI safety blunder\n00:21:01 - OpenClaw Mac Minis\n00:24:38 - AI Impact Summit", "AI Personal Assistants are ruining people lives | TheStandup", "LpMn08jW02A", 2125, false, "https://www.youtube.com/watch?v=LpMn08jW02A", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022800_AI Personal Assistants are ruining people lives | TheStandup.mp4", false, 37, ~U[2026-02-28 14:00:36Z]] 05:30:44.287 [debug] QUERY OK source="sources" db=0.6ms idle=131.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:30:44.295 [debug] QUERY OK source="media_items" db=7.2ms queue=0.1ms idle=13.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-27 12:54:33Z], 37] 05:30:44.315 [debug] QUERY OK source="media_items" db=18.6ms 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" ["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", "Cloudflare’s Lavalamp Obsession", "504fc2c2-a99c-43b5-bc8a-3b24ac01fd79", "hxY6DewNpao", 627, false, "https://www.youtube.com/watch?v=hxY6DewNpao", 2, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022700_Cloudflare’s Lavalamp Obsession.mp4", false, false, false, 37, [], 98, ~U[2026-02-27 12:54:33Z], ~U[2026-03-01 11:30:44Z], ~U[2026-03-01 11:30:44Z], "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", "Cloudflare’s Lavalamp Obsession", "hxY6DewNpao", 627, false, "https://www.youtube.com/watch?v=hxY6DewNpao", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022700_Cloudflare’s Lavalamp Obsession.mp4", false, 37, ~U[2026-02-27 12:54:33Z]] 05:30:44.317 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=33.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:30:44.325 [debug] QUERY OK source="media_items" db=7.0ms queue=0.1ms idle=31.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-25 13:00:38Z], 37] 05:30:44.329 [debug] QUERY OK source="media_items" db=2.9ms 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" ["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", "Openclaw deletes entire inbox", "0663234a-2ebd-4f89-90ba-73af1b7a5bc4", "JiA4fvoeUfI", 558, false, "https://www.youtube.com/watch?v=JiA4fvoeUfI", 3, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022500_Openclaw deletes entire inbox.mp4", false, false, false, 37, [], 98, ~U[2026-02-25 13:00:38Z], ~U[2026-03-01 11:30:44Z], ~U[2026-03-01 11:30:44Z], "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", "Openclaw deletes entire inbox", "JiA4fvoeUfI", 558, false, "https://www.youtube.com/watch?v=JiA4fvoeUfI", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022500_Openclaw deletes entire inbox.mp4", false, 37, ~U[2026-02-25 13:00:38Z]] 05:30:44.330 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=34.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 05:30:44.338 [debug] QUERY OK source="media_items" db=7.6ms idle=16.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-23 16:04:53Z], 37] 05:30:44.342 [debug] QUERY OK source="media_items" db=2.8ms 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\n### Check out video on distillation!\nhttps://www.youtube.com/watch?v=jrJKRYAdh7I\n\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 Google allowed be mad at this?", "16269518-41f6-4c7c-a4c6-564b51ab36fc", "W9WB2xbM5sc", 397, false, "https://www.youtube.com/watch?v=W9WB2xbM5sc", 4, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022300_Is Google allowed be mad at this?.mp4", false, false, false, 37, [], 97, ~U[2026-02-23 16:04:53Z], ~U[2026-03-01 11:30:44Z], ~U[2026-03-01 11:30:44Z], "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\n### Check out video on distillation!\nhttps://www.youtube.com/watch?v=jrJKRYAdh7I\n\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 Google allowed be mad at this?", "W9WB2xbM5sc", 397, false, "https://www.youtube.com/watch?v=W9WB2xbM5sc", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022300_Is Google allowed be mad at this?.mp4", false, 37, ~U[2026-02-23 16:04:53Z]] 05:30:44.344 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 05:30:44.352 [debug] QUERY OK source="media_items" db=7.4ms idle=15.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-21 15:28:03Z], 37] 05:30:44.356 [debug] QUERY OK source="media_items" db=3.4ms queue=0.1ms idle=22.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" ["ssh terminal.shop\n\nBen and Alexis join the show to talk about their new sketch comedy series, the creative chaos behind it, and what it actually takes to ship something big online. From quitting tech jobs to filming 12-hour shoot days, unreleased music videos, and creative mental breakdowns, this episode is a behind-the-scenes look at building something ambitious with friends.\n\n\nIt’s comedy, tech, risk, and a whole lot of “just make the thing.”\n\n\n\nCHAPTERS\n00:00:00 - Intro\n00:03:00 - BIG KRAZAM Project\n00:04:25 - Terminal Coffee\n00:05:00 - The Tease\n00:05:36 - Output and Delays\n00:08:08 - THE ANNOUCEMENT\n00:11:30 - Why now\n00:20:00 - What it takes to make something like this\n00:26:55 - Teej says something nice\n00:28:10 - Whats different about a making a sketch show\n00:30:50 - Quiting SWE\n00:39:29 - Agentic Life\n00:41:25 - Begins stolen Valor and making a band\n00:43:42 - Instruments\n00:47:00 - We should be making a band!\n00:51:23 - Outro", "Big KRAZAM Announcement | TheStandup", "a61fabe2-e2cd-4f26-985c-ff820bbd8044", "uhlBpEkdxhM", 2979, false, "https://www.youtube.com/watch?v=uhlBpEkdxhM", 5, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022100_Big KRAZAM Announcement | TheStandup.mp4", false, false, false, 37, [], 98, ~U[2026-02-21 15:28:03Z], ~U[2026-03-01 11:30:44Z], ~U[2026-03-01 11:30:44Z], "ssh terminal.shop\n\nBen and Alexis join the show to talk about their new sketch comedy series, the creative chaos behind it, and what it actually takes to ship something big online. From quitting tech jobs to filming 12-hour shoot days, unreleased music videos, and creative mental breakdowns, this episode is a behind-the-scenes look at building something ambitious with friends.\n\n\nIt’s comedy, tech, risk, and a whole lot of “just make the thing.”\n\n\n\nCHAPTERS\n00:00:00 - Intro\n00:03:00 - BIG KRAZAM Project\n00:04:25 - Terminal Coffee\n00:05:00 - The Tease\n00:05:36 - Output and Delays\n00:08:08 - THE ANNOUCEMENT\n00:11:30 - Why now\n00:20:00 - What it takes to make something like this\n00:26:55 - Teej says something nice\n00:28:10 - Whats different about a making a sketch show\n00:30:50 - Quiting SWE\n00:39:29 - Agentic Life\n00:41:25 - Begins stolen Valor and making a band\n00:43:42 - Instruments\n00:47:00 - We should be making a band!\n00:51:23 - Outro", "Big KRAZAM Announcement | TheStandup", "uhlBpEkdxhM", 2979, false, "https://www.youtube.com/watch?v=uhlBpEkdxhM", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022100_Big KRAZAM Announcement | TheStandup.mp4", false, 37, ~U[2026-02-21 15:28:03Z]] 05:30:44.358 [debug] QUERY OK source="sources" db=1.0ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 05:30:44.366 [debug] QUERY OK source="media_items" db=7.7ms queue=0.1ms idle=16.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-20 12:18:16Z], 37] 05:30:44.370 [debug] QUERY OK source="media_items" db=2.6ms queue=0.1ms 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" ["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", "AI Agent writes hit piece", "90f0cc0e-da9f-4a32-884e-c16de5c4627b", "ssTUhnShKGM", 605, false, "https://www.youtube.com/watch?v=ssTUhnShKGM", 6, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022000_AI Agent writes hit piece.mp4", false, false, false, 37, [], 98, ~U[2026-02-20 12:18:16Z], ~U[2026-03-01 11:30:44Z], ~U[2026-03-01 11:30:44Z], "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", "AI Agent writes hit piece", "ssTUhnShKGM", 605, false, "https://www.youtube.com/watch?v=ssTUhnShKGM", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e022000_AI Agent writes hit piece.mp4", false, 37, ~U[2026-02-20 12:18:16Z]] 05:30:44.372 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=18.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:30:44.380 [debug] QUERY OK source="media_items" db=7.3ms queue=0.1ms idle=16.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-18 11:55:04Z], 37] 05:30:44.384 [debug] QUERY OK source="media_items" db=3.1ms queue=0.1ms idle=22.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\n\n### Sources \nhttps://www.anthropic.com/engineering/building-c-compiler \nhttps://www.youtube.com/shorts/HfAFHRVtYFE \nhttps://x.com/ThePrimeagen/status/2020220244078239867 \nhttps://github.com/anthropics/claudes-c-compiler/issues/1 \nhttps://x.com/garlic_wife/status/2019820276553482717 \nhttps://x.com/YATPoaster/status/2019644885373186303 \nhttps://x.com/ShriramKMurthi/status/2019818366110953862 \nhttps://x.com/AnthropicAI/status/2019496582698397945 \nhttps://www.youtube.com/watch?v=vNeIQS9GsZ8 \nhttps://arxiv.org/abs/2601.02671", "The Real Reason Anthropic built a Compiler", "5b02c666-1d47-48b1-90d4-2ce9835875bf", "6QryFk4RYaM", 497, false, "https://www.youtube.com/watch?v=6QryFk4RYaM", 7, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e021800_The Real Reason Anthropic built a Compiler.mp4", false, false, false, 37, [], 98, ~U[2026-02-18 11:55:04Z], ~U[2026-03-01 11:30:44Z], ~U[2026-03-01 11:30:44Z], "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\n\n### Sources \nhttps://www.anthropic.com/engineering/building-c-compiler \nhttps://www.youtube.com/shorts/HfAFHRVtYFE \nhttps://x.com/ThePrimeagen/status/2020220244078239867 \nhttps://github.com/anthropics/claudes-c-compiler/issues/1 \nhttps://x.com/garlic_wife/status/2019820276553482717 \nhttps://x.com/YATPoaster/status/2019644885373186303 \nhttps://x.com/ShriramKMurthi/status/2019818366110953862 \nhttps://x.com/AnthropicAI/status/2019496582698397945 \nhttps://www.youtube.com/watch?v=vNeIQS9GsZ8 \nhttps://arxiv.org/abs/2601.02671", "The Real Reason Anthropic built a Compiler", "6QryFk4RYaM", 497, false, "https://www.youtube.com/watch?v=6QryFk4RYaM", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e021800_The Real Reason Anthropic built a Compiler.mp4", false, 37, ~U[2026-02-18 11:55:04Z]] 05:30:44.386 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=18.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:30:44.394 [debug] QUERY OK source="media_items" db=7.6ms queue=0.1ms idle=16.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-16 13:01:59Z], 37] 05:30:44.397 [debug] QUERY OK source="media_items" db=2.5ms 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" ["https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Article\nhttps://questdb.com/blog/jvm-current-thread-user-time/\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", "Only 40 lines of code", "4a9ab580-60df-4121-bcea-10782d686d39", "R3ydGMRtnqU", 479, false, "https://www.youtube.com/watch?v=R3ydGMRtnqU", 8, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e021600_Only 40 lines of code.mp4", false, false, false, 37, [], 98, ~U[2026-02-16 13:01:59Z], ~U[2026-03-01 11:30:44Z], ~U[2026-03-01 11:30:44Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\n### Article\nhttps://questdb.com/blog/jvm-current-thread-user-time/\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", "Only 40 lines of code", "R3ydGMRtnqU", 479, false, "https://www.youtube.com/watch?v=R3ydGMRtnqU", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e021600_Only 40 lines of code.mp4", false, 37, ~U[2026-02-16 13:01:59Z]] 05:30:44.399 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=18.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:30:44.407 [debug] QUERY OK source="media_items" db=7.3ms idle=16.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-14 17:22:55Z], 37] 05:30:44.411 [debug] QUERY OK source="media_items" db=2.9ms idle=21.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\nChapters \n00:00:00 - Intro\n00:01:04 - Begins Current Game\n00:04:18 - Terminal Coffee\n00:04:52 - Terraria plugins\n00:07:26 - Primes Current Game\n00:09:25 - Begin Ruins Magic\n00:13:19 - Back to Primes Game\n00:15:50 - Tostitos\n00:18:57 - Trashs Current Game\n00:26:14 - Trash pro gamer lore\n00:28:49 - Replacing toxic gaming with coding\n00:32:13 - Perfect Dark VS 007 Golden Gun\n00:33:07 - Old School Cheating and Retro Games\n00:36:22 - Educational games\n00:38:16 - DOTA\n00:45:00 - Zelda\n00:46:48 - Teejs Current game\n00:47:58 - Games we are excited for\n00:53:48 - Age Of Empires\n00:57:58 - LOTR\n00:59:19 - Outro\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "We used to be gamers | TheStandup", "51cade90-bacb-41e4-bb1e-411f7134a3c1", "FBvB1MQis4Y", 3629, false, "https://www.youtube.com/watch?v=FBvB1MQis4Y", 9, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e021400_We used to be gamers | TheStandup.mp4", false, false, false, 37, [], 98, ~U[2026-02-14 17:22:55Z], ~U[2026-03-01 11:30:44Z], ~U[2026-03-01 11:30:44Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nChapters \n00:00:00 - Intro\n00:01:04 - Begins Current Game\n00:04:18 - Terminal Coffee\n00:04:52 - Terraria plugins\n00:07:26 - Primes Current Game\n00:09:25 - Begin Ruins Magic\n00:13:19 - Back to Primes Game\n00:15:50 - Tostitos\n00:18:57 - Trashs Current Game\n00:26:14 - Trash pro gamer lore\n00:28:49 - Replacing toxic gaming with coding\n00:32:13 - Perfect Dark VS 007 Golden Gun\n00:33:07 - Old School Cheating and Retro Games\n00:36:22 - Educational games\n00:38:16 - DOTA\n00:45:00 - Zelda\n00:46:48 - Teejs Current game\n00:47:58 - Games we are excited for\n00:53:48 - Age Of Empires\n00:57:58 - LOTR\n00:59:19 - Outro\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "We used to be gamers | TheStandup", "FBvB1MQis4Y", 3629, false, "https://www.youtube.com/watch?v=FBvB1MQis4Y", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e021400_We used to be gamers | TheStandup.mp4", false, 37, ~U[2026-02-14 17:22:55Z]] 05:30:44.413 [debug] QUERY OK source="sources" db=1.1ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 05:30:44.420 [debug] QUERY OK source="media_items" db=6.9ms idle=15.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-13 13:01:24Z], 37] 05:30:44.423 [debug] QUERY OK source="media_items" db=2.3ms queue=0.1ms 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\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", "Sam Altman said what???", "9aedc5a3-772a-4a41-9dae-5a6e154c332f", "pfknyZhiMnU", 567, false, "https://www.youtube.com/watch?v=pfknyZhiMnU", 10, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e021300_Sam Altman said what???.mp4", false, false, false, 37, [], 98, ~U[2026-02-13 13:01:24Z], ~U[2026-03-01 11:30:44Z], ~U[2026-03-01 11:30:44Z], "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", "Sam Altman said what???", "pfknyZhiMnU", 567, false, "https://www.youtube.com/watch?v=pfknyZhiMnU", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e021300_Sam Altman said what???.mp4", false, 37, ~U[2026-02-13 13:01:24Z]] 05:30:44.425 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=16.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:30:44.432 [debug] QUERY OK source="media_items" db=6.9ms idle=14.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-11 13:01:05Z], 37] 05:30:44.436 [debug] QUERY OK source="media_items" db=2.7ms queue=0.1ms idle=20.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" ["LIVE EVENT -- https://www.youtube.com/watch?v=0DunWr0wn2A\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", "Be Careful w/ Skills", "dbcc2fdc-4608-4444-9acd-3fe910f91a63", "Y2otN_NY75Y", 571, false, "https://www.youtube.com/watch?v=Y2otN_NY75Y", 11, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e021100_Be Careful w⧸ Skills.mp4", false, false, false, 37, [], 98, ~U[2026-02-11 13:01:05Z], ~U[2026-03-01 11:30:44Z], ~U[2026-03-01 11:30:44Z], "LIVE EVENT -- https://www.youtube.com/watch?v=0DunWr0wn2A\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", "Be Careful w/ Skills", "Y2otN_NY75Y", 571, false, "https://www.youtube.com/watch?v=Y2otN_NY75Y", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e021100_Be Careful w⧸ Skills.mp4", false, 37, ~U[2026-02-11 13:01:05Z]] 05:30:44.438 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=16.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:30:44.445 [debug] QUERY OK source="media_items" db=7.0ms idle=15.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-09 12:01:30Z], 37] 05:30:44.450 [debug] QUERY OK source="media_items" db=3.3ms idle=21.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" ["Sources\n* https://youtu.be/h3JfOxx6Hh4?si=JBjxLo9MDcmBGEiO\n* https://openai.com/index/a-business-that-scales-with-the-value-of-intelligence/\n* https://qazinform.com/news/openai-sees-paid-chatgpt-users-reaching-220-million-by-2030-2e4e7a#:~:text=The%20projection%20reflects%20growing%20global,for%20users%20in%20several%20countries.\n* https://docs.google.com/spreadsheets/d/1BT6vHxS1z_B-C5Cc2xE9AmSWF-0r_yssndN0ZCPtNJ8/edit?gid=0#gid=0\n* https://www.youtube.com/watch?v=FVRHTWWEIz4\n* https://www.reuters.com/technology/openai-projected-least-220-million-people-will-pay-chatgpt-by-2030-information-2025-11-26/\n* https://www.youtube.com/watch?v=DB9mjd-65gw&t=978s\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", "OpenAI's New Era", "6a0ca5b7-16ea-4dae-8906-ee1b6a536b95", "jUiZg4LQgiY", 774, false, "https://www.youtube.com/watch?v=jUiZg4LQgiY", 12, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020900_OpenAI's New Era.mp4", false, false, false, 37, [], 98, ~U[2026-02-09 12:01:30Z], ~U[2026-03-01 11:30:44Z], ~U[2026-03-01 11:30:44Z], "Sources\n* https://youtu.be/h3JfOxx6Hh4?si=JBjxLo9MDcmBGEiO\n* https://openai.com/index/a-business-that-scales-with-the-value-of-intelligence/\n* https://qazinform.com/news/openai-sees-paid-chatgpt-users-reaching-220-million-by-2030-2e4e7a#:~:text=The%20projection%20reflects%20growing%20global,for%20users%20in%20several%20countries.\n* https://docs.google.com/spreadsheets/d/1BT6vHxS1z_B-C5Cc2xE9AmSWF-0r_yssndN0ZCPtNJ8/edit?gid=0#gid=0\n* https://www.youtube.com/watch?v=FVRHTWWEIz4\n* https://www.reuters.com/technology/openai-projected-least-220-million-people-will-pay-chatgpt-by-2030-information-2025-11-26/\n* https://www.youtube.com/watch?v=DB9mjd-65gw&t=978s\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", "OpenAI's New Era", "jUiZg4LQgiY", 774, false, "https://www.youtube.com/watch?v=jUiZg4LQgiY", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020900_OpenAI's New Era.mp4", false, 37, ~U[2026-02-09 12:01:30Z]] 05:30:44.452 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 05:30:44.459 [debug] QUERY OK source="media_items" db=7.0ms idle=16.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-08 14:00:53Z], 37] 05:30:44.496 [debug] QUERY OK source="media_items" db=36.1ms 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" ["ssh terminal.shop \n\nThis week on The Standup, the crew digs into the chaos of AI “skills,” agent tooling, and the growing security risks nobody seems to be paying attention to. From hallucinated commands spreading across GitHub to supply-chain nightmares and wild real-world examples, it’s a funny, slightly terrifying look at where AI tooling is headed. Laughs, hot takes, and a reality check for anyone letting agents run loose on their machine.\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\n00:00:00 - Intro\n00:04:01 - Terminal Coffee\n00:04:34 - Skills & Hallucinated npx Commands\n00:14:26 - Hiding commands in Skill.md\n00:18:52 - What Would Elon Do?\n00:24:46 - Skills.sh\n00:33:00 - AI Social Networks\n00:35:41 - Simulation Theory\n00:40:31 - Moltbook\n00:47:50 - Outro", "AGI Achieved?! | TheStandup", "1f521e15-d4a6-42af-840a-5c359cb36ef0", "_CzEmKTk5Rs", 2891, false, "https://www.youtube.com/watch?v=_CzEmKTk5Rs", 13, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020800_AGI Achieved?! | TheStandup.mp4", false, false, false, 37, [], 98, ~U[2026-02-08 14:00:53Z], ~U[2026-03-01 11:30:44Z], ~U[2026-03-01 11:30:44Z], "ssh terminal.shop \n\nThis week on The Standup, the crew digs into the chaos of AI “skills,” agent tooling, and the growing security risks nobody seems to be paying attention to. From hallucinated commands spreading across GitHub to supply-chain nightmares and wild real-world examples, it’s a funny, slightly terrifying look at where AI tooling is headed. Laughs, hot takes, and a reality check for anyone letting agents run loose on their machine.\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\n00:00:00 - Intro\n00:04:01 - Terminal Coffee\n00:04:34 - Skills & Hallucinated npx Commands\n00:14:26 - Hiding commands in Skill.md\n00:18:52 - What Would Elon Do?\n00:24:46 - Skills.sh\n00:33:00 - AI Social Networks\n00:35:41 - Simulation Theory\n00:40:31 - Moltbook\n00:47:50 - Outro", "AGI Achieved?! | TheStandup", "_CzEmKTk5Rs", 2891, false, "https://www.youtube.com/watch?v=_CzEmKTk5Rs", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020800_AGI Achieved?! | TheStandup.mp4", false, 37, ~U[2026-02-08 14:00:53Z]] 05:30:44.499 [debug] QUERY OK source="sources" db=1.5ms queue=0.1ms idle=51.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:30:44.507 [debug] QUERY OK source="media_items" db=7.6ms idle=49.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-07 01:33:57Z], 37] 05:30:44.514 [debug] QUERY OK source="media_items" db=6.7ms idle=55.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" ["### Source\nhttps://lars.ingebrigtsen.no/2026/02/02/whats-up-with-all-those-equals-signs-anyway/\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", "Why Epstein emails have so many ='s", "059a9e74-fe9c-4337-b3b2-ce32d3a59b1c", "SVVnkNZWJhk", 429, false, "https://www.youtube.com/watch?v=SVVnkNZWJhk", 14, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020700_Why Epstein emails have so many ='s.mp4", false, false, false, 37, [], 98, ~U[2026-02-07 01:33:57Z], ~U[2026-03-01 11:30:44Z], ~U[2026-03-01 11:30:44Z], "### Source\nhttps://lars.ingebrigtsen.no/2026/02/02/whats-up-with-all-those-equals-signs-anyway/\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", "Why Epstein emails have so many ='s", "SVVnkNZWJhk", 429, false, "https://www.youtube.com/watch?v=SVVnkNZWJhk", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020700_Why Epstein emails have so many ='s.mp4", false, 37, ~U[2026-02-07 01:33:57Z]] 05:30:44.516 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=55.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:30:44.525 [debug] QUERY OK source="media_items" db=8.2ms idle=20.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-06 12:49:56Z], 37] 05:30:44.529 [debug] QUERY OK source="media_items" db=2.6ms idle=26.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" ["oh you want real coffee? ssh terminal.shop\n\noh you dont know how to ssh or use the terminal? well... then this coffee isn't for you\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "SAME DAY: Opus 4.6 AND Chat GPT 5.3!", "98a89433-0e83-4fe7-9759-f7c7bcc22b71", "wN13YeqEaqk", 470, false, "https://www.youtube.com/watch?v=wN13YeqEaqk", 15, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020600_SAME DAY: Opus 4.6 AND Chat GPT 5.3!.mp4", false, false, false, 37, [], 98, ~U[2026-02-06 12:49:56Z], ~U[2026-03-01 11:30:44Z], ~U[2026-03-01 11:30:44Z], "oh you want real coffee? ssh terminal.shop\n\noh you dont know how to ssh or use the terminal? well... then this coffee isn't for you\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "SAME DAY: Opus 4.6 AND Chat GPT 5.3!", "wN13YeqEaqk", 470, false, "https://www.youtube.com/watch?v=wN13YeqEaqk", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020600_SAME DAY: Opus 4.6 AND Chat GPT 5.3!.mp4", false, 37, ~U[2026-02-06 12:49:56Z]] 05:30:44.530 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms 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" = ?) [37] 05:30:44.539 [debug] QUERY OK source="media_items" db=8.1ms idle=16.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-03 14:01:20Z], 37] 05:30:44.543 [debug] QUERY OK source="media_items" db=2.7ms idle=23.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" ["Thanks to this week's sponsor: Code Rabbit\nhttps://coderabbit.link/primeagen-vscode\n\nIf 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.\n\n\n\n\n00:00:00 - Intro\n00:02:16 - The RAM Situation\n00:04:25 - Merge Cop Ep 3\n00:06:16 - RAM FABS\n00:07:19 - DDR5 not for the consumer\n00:10:30 - Primes Windows Issues\n00:12:43 - The Great RAMming\n00:35:40 - Is Other hardware pricing effected\n00:40:46 - Is Renting a computer the future?\n00:44:40 - What about Phones\n00:48:40 - Hiring at LTT in an AI world\n00:53:08 - Developers at LTT\n01:02:04 - Is Tech Youtube Changing?\n01:17:34 - Year of the Linux Desktop\n01:19:08 - Outro", "Luke talks RAM Pricing, Tech Youtube and LTT Developer hiring process | The Standup", "1572e353-c755-4909-a716-086ae11ed80c", "kD7CRXRbcrw", 4808, false, "https://www.youtube.com/watch?v=kD7CRXRbcrw", 16, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020300_Luke talks RAM Pricing, Tech Youtube and LTT Developer hiring process | The Standup.mp4", false, false, false, 37, [], 97, ~U[2026-02-03 14:01:20Z], ~U[2026-03-01 11:30:44Z], ~U[2026-03-01 11:30:44Z], "Thanks to this week's sponsor: Code Rabbit\nhttps://coderabbit.link/primeagen-vscode\n\nIf 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.\n\n\n\n\n00:00:00 - Intro\n00:02:16 - The RAM Situation\n00:04:25 - Merge Cop Ep 3\n00:06:16 - RAM FABS\n00:07:19 - DDR5 not for the consumer\n00:10:30 - Primes Windows Issues\n00:12:43 - The Great RAMming\n00:35:40 - Is Other hardware pricing effected\n00:40:46 - Is Renting a computer the future?\n00:44:40 - What about Phones\n00:48:40 - Hiring at LTT in an AI world\n00:53:08 - Developers at LTT\n01:02:04 - Is Tech Youtube Changing?\n01:17:34 - Year of the Linux Desktop\n01:19:08 - Outro", "Luke talks RAM Pricing, Tech Youtube and LTT Developer hiring process | The Standup", "kD7CRXRbcrw", 4808, false, "https://www.youtube.com/watch?v=kD7CRXRbcrw", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020300_Luke talks RAM Pricing, Tech Youtube and LTT Developer hiring process | The Standup.mp4", false, 37, ~U[2026-02-03 14:01:20Z]] 05:30:44.544 [debug] QUERY OK source="sources" db=0.9ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 05:30:44.553 [debug] QUERY OK source="media_items" db=7.9ms idle=16.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-03 12:41:56Z], 37] 05:30:44.557 [debug] QUERY OK source="media_items" db=2.6ms queue=0.1ms 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" ["oh you want real coffee? ssh terminal.shop\n\noh you dont know how to ssh or use the terminal? well... then this coffee isn't for you\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\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 Moltbook Experiment Failed", "9c52c40f-e32d-44b6-9fa0-4eefbae04a47", "6OXE65fjjsU", 560, false, "https://www.youtube.com/watch?v=6OXE65fjjsU", 17, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020300_The Moltbook Experiment Failed.mp4", false, false, false, 37, [], 97, ~U[2026-02-03 12:41:56Z], ~U[2026-03-01 11:30:44Z], ~U[2026-03-01 11:30:44Z], "oh you want real coffee? ssh terminal.shop\n\noh you dont know how to ssh or use the terminal? well... then this coffee isn't for you\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\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 Moltbook Experiment Failed", "6OXE65fjjsU", 560, false, "https://www.youtube.com/watch?v=6OXE65fjjsU", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020300_The Moltbook Experiment Failed.mp4", false, 37, ~U[2026-02-03 12:41:56Z]] 05:30:44.558 [debug] QUERY OK source="sources" db=1.0ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 05:30:44.566 [debug] QUERY OK source="media_items" db=7.3ms idle=16.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-02 12:40:47Z], 37] 05:30:44.575 [debug] QUERY OK source="media_items" db=8.3ms idle=22.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" ["oh you want real coffee? ssh terminal.shop\n\noh you dont know how to ssh or use the terminal? well... then this coffee isn't for you\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "F*** you Microsoft", "5656df31-83a6-42a3-83ed-b09cedb2964f", "d8WEzjDx4-E", 457, false, "https://www.youtube.com/watch?v=d8WEzjDx4-E", 18, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020200_F*** you Microsoft.mp4", false, false, false, 37, [], 97, ~U[2026-02-02 12:40:47Z], ~U[2026-03-01 11:30:44Z], ~U[2026-03-01 11:30:44Z], "oh you want real coffee? ssh terminal.shop\n\noh you dont know how to ssh or use the terminal? well... then this coffee isn't for you\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "F*** you Microsoft", "d8WEzjDx4-E", 457, false, "https://www.youtube.com/watch?v=d8WEzjDx4-E", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e020200_F*** you Microsoft.mp4", false, 37, ~U[2026-02-02 12:40:47Z]] 05:30:44.577 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms 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] 05:30:44.585 [debug] QUERY OK source="media_items" db=7.4ms idle=21.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-31 10:06:19Z], 37] 05:30:44.590 [debug] QUERY OK source="media_items" db=3.3ms queue=0.1ms idle=27.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://boot.dev/prime I have 2 courses, TCP to HTTP in Golang and 2 part Git course\nI think that boot is actually a great place to go learn and in the day of AI slop, you should take the time to learn and be effective\n\nhttps://GitHub.com/ThePrimeagen/99\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 Moltbook Situation", "a88dcc2c-daf7-4a76-9362-35a892dcd680", "2PWFj50DcZU", 705, false, "https://www.youtube.com/watch?v=2PWFj50DcZU", 19, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e013100_The Moltbook Situation.mp4", false, false, false, 37, [], 98, ~U[2026-01-31 10:06:19Z], ~U[2026-03-01 11:30:44Z], ~U[2026-03-01 11:30:44Z], "https://boot.dev/prime I have 2 courses, TCP to HTTP in Golang and 2 part Git course\nI think that boot is actually a great place to go learn and in the day of AI slop, you should take the time to learn and be effective\n\nhttps://GitHub.com/ThePrimeagen/99\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 Moltbook Situation", "2PWFj50DcZU", 705, false, "https://www.youtube.com/watch?v=2PWFj50DcZU", "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2026/s2026e013100_The Moltbook Situation.mp4", false, 37, ~U[2026-01-31 10:06:19Z]] 05:30:44.591 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=24.4ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-01 11:30:44Z], ~U[2026-03-01 11:30:44Z], 37] 05:30:44.601 [debug] QUERY OK source="media_items" db=8.8ms idle=16.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")))) [37] 05:30:44.662 [debug] QUERY OK source="media_items" db=8.4ms queue=0.1ms idle=12.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")))) [37] 05:30:44.664 [debug] QUERY OK source="media_items" db=0.8ms idle=18.5ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [37] 05:30:44.669 [debug] QUERY OK source="tasks" db=1.5ms idle=14.5ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189111, 37, ~U[2026-03-01 11:30:44Z], ~U[2026-03-01 11:30:44Z]] 05:30:44.672 [info] {"args":{"id":37},"id":189024,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":119922752,"event":"job:stop","queue_time":185413,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 05:30:44.681 [info] {"args":{"id":43},"id":189026,"meta":{},"system_time":1772364644680924003,"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"]} 05:30:44.682 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=14.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:30:44.684 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=15.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:30:44.696 [debug] QUERY OK source="media_items" db=12.1ms idle=14.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")))) [43] 05:30:44.698 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=25.0ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [43] 05:30:44.698 [debug] QUERY OK source="media_profiles" db=0.3ms idle=17.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] 05:30:44.700 [debug] QUERY OK source="settings" db=0.3ms idle=16.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:30:44.700 [debug] QUERY OK source="settings" db=0.2ms idle=16.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:30:44.710 [debug] QUERY OK source="media_items" db=7.7ms idle=6.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [43] 05:30:44.715 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 05:30:44.715 [debug] Current batch of media processed. Will check again in 1000ms 05:30:44.715 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=17.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:30:44.716 [debug] QUERY OK source="settings" db=0.2ms idle=17.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:30:44.717 [debug] QUERY OK source="settings" db=0.2ms idle=16.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:30:44.717 [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/91/88/9188b604024842e76fa366302adb0fb8a034660ac158737fd4c0a7674b9e36f1.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/c1/0ac1afe6cfa4a04f419165815dd515628e331c0d142277c1e641ab5467f8eb4f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:30:45.116 [debug] Current batch of media processed. Will check again in 1000ms 05:30:45.716 [debug] Current batch of media processed. Will check again in 1000ms 05:30:46.117 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I go over shell tricks to manage your files more effectively on Linux.\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" => 949, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e120400_Linux Shell Tricks For Managing Files.mp4", "id" => "W6CVxpMBmOo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=W6CVxpMBmOo", "playlist_index" => 12, "timestamp" => 1764861727, "title" => "Linux Shell Tricks For Managing Files", "upload_date" => "20251204"} 05:30:46.119 [debug] QUERY OK source="sources" db=0.6ms idle=1407.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:30:46.120 [debug] QUERY OK source="sources" db=0.5ms idle=1403.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:30:46.124 [debug] QUERY OK source="media_items" db=4.2ms idle=1403.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-04 15:22:07Z], 45] 05:30:46.128 [debug] QUERY OK source="media_items" db=2.4ms idle=1408.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 go over shell tricks to manage your files more effectively on Linux.\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", "Linux Shell Tricks For Managing Files", "c9e4bcf8-b978-482e-b710-768c07c930ce", "W6CVxpMBmOo", 949, false, "https://www.youtube.com/watch?v=W6CVxpMBmOo", 12, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e120400_Linux Shell Tricks For Managing Files.mp4", false, false, false, 45, [], 98, ~U[2025-12-04 15:22:07Z], ~U[2026-03-01 11:30:46Z], ~U[2026-03-01 11:30:46Z], "In this video I go over shell tricks to manage your files more effectively on Linux.\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", "Linux Shell Tricks For Managing Files", "W6CVxpMBmOo", 949, false, "https://www.youtube.com/watch?v=W6CVxpMBmOo", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e120400_Linux Shell Tricks For Managing Files.mp4", false, 45, ~U[2025-12-04 15:22:07Z]] 05:30:46.128 [debug] QUERY OK source="sources" db=0.5ms idle=982.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:30:46.130 [debug] QUERY OK source="media_profiles" db=1.3ms idle=10.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] 05:30:46.131 [debug] QUERY OK source="media_items" db=0.7ms idle=11.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 [1692255] 05:30:46.132 [debug] Current batch of media processed. Will check again in 1000ms 05:30:46.717 [debug] Current batch of media processed. Will check again in 1000ms 05:30:47.132 [debug] Current batch of media processed. Will check again in 1000ms 05:30:47.718 [debug] Current batch of media processed. Will check again in 1000ms 05:30:48.133 [debug] Current batch of media processed. Will check again in 1000ms 05:30:48.719 [debug] Current batch of media processed. Will check again in 1000ms 05:30:49.134 [debug] Current batch of media processed. Will check again in 1000ms 05:30:49.720 [debug] Current batch of media processed. Will check again in 1000ms 05:30:50.135 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how Linux is becoming the best OS for gaming and productivity, not just as a result of open source developer efforts, but Microsoft compromising their own OS and turning it into a \"Canvas for AI\". Zorin OS 18 provides a stable environment for users and makes the transition from Windows easier, while bazzite provides an optimized linux environment for gamers.\nhttps://zorin.com/os/\nhttps://bazzite.gg/\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" => 525, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e112700_The Best Desktop Linux For Windows Users.mp4", "id" => "3MwJbRq3-rM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=3MwJbRq3-rM", "playlist_index" => 13, "timestamp" => 1764256825, "title" => "The Best Desktop Linux For Windows Users", "upload_date" => "20251127"} 05:30:50.136 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=982.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:30:50.137 [debug] QUERY OK source="sources" db=0.3ms idle=622.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:30:50.141 [debug] QUERY OK source="media_items" db=3.4ms idle=623.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-27 15:20:25Z], 45] 05:30:50.145 [debug] QUERY OK source="media_items" db=2.7ms idle=627.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 Linux is becoming the best OS for gaming and productivity, not just as a result of open source developer efforts, but Microsoft compromising their own OS and turning it into a \"Canvas for AI\". Zorin OS 18 provides a stable environment for users and makes the transition from Windows easier, while bazzite provides an optimized linux environment for gamers.\nhttps://zorin.com/os/\nhttps://bazzite.gg/\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 Best Desktop Linux For Windows Users", "1f1f58f0-2872-48a3-ab20-15b538ae3fa9", "3MwJbRq3-rM", 525, false, "https://www.youtube.com/watch?v=3MwJbRq3-rM", 13, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e112700_The Best Desktop Linux For Windows Users.mp4", false, false, false, 45, [], 98, ~U[2025-11-27 15:20:25Z], ~U[2026-03-01 11:30:50Z], ~U[2026-03-01 11:30:50Z], "In this video I discuss how Linux is becoming the best OS for gaming and productivity, not just as a result of open source developer efforts, but Microsoft compromising their own OS and turning it into a \"Canvas for AI\". Zorin OS 18 provides a stable environment for users and makes the transition from Windows easier, while bazzite provides an optimized linux environment for gamers.\nhttps://zorin.com/os/\nhttps://bazzite.gg/\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 Best Desktop Linux For Windows Users", "3MwJbRq3-rM", 525, false, "https://www.youtube.com/watch?v=3MwJbRq3-rM", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e112700_The Best Desktop Linux For Windows Users.mp4", false, 45, ~U[2025-11-27 15:20:25Z]] 05:30:50.146 [debug] QUERY OK source="sources" db=0.5ms idle=630.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] 05:30:50.147 [debug] QUERY OK source="media_profiles" db=0.4ms idle=9.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:30:50.147 [debug] QUERY OK source="media_items" db=0.4ms idle=9.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 [1637648] 05:30:50.148 [debug] Current batch of media processed. Will check again in 1000ms 05:30:50.721 [debug] Current batch of media processed. Will check again in 1000ms 05:30:51.148 [debug] Current batch of media processed. Will check again in 1000ms 05:30:51.722 [debug] Current batch of media processed. Will check again in 1000ms 05:30:52.149 [debug] Current batch of media processed. Will check again in 1000ms 05:30:52.723 [debug] Current batch of media processed. Will check again in 1000ms 05:30:53.150 [debug] Current batch of media processed. Will check again in 1000ms 05:30:53.724 [debug] Current batch of media processed. Will check again in 1000ms 05:30:54.151 [debug] Current batch of media processed. Will check again in 1000ms 05:30:54.725 [debug] Current batch of media processed. Will check again in 1000ms 05:30:55.152 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how an uncaught exception in Cloudflare's Rust infrastructure caused their services to go down and by extension large parts of the internet.\n\nCloudflare Blog Links\nhttps://blog.cloudflare.com/18-november-2025-outage/\nhttps://blog.cloudflare.com/20-percent-internet-upgrade/\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" => 578, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e112200_Cloudflare Breaks the Internet (again).mp4", "id" => "qEkiSBxLjUU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=qEkiSBxLjUU", "playlist_index" => 14, "timestamp" => 1763770135, "title" => "Cloudflare Breaks the Internet (again)", "upload_date" => "20251122"} 05:30:55.153 [debug] QUERY OK source="sources" db=0.4ms idle=1638.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] 05:30:55.154 [debug] QUERY OK source="sources" db=0.2ms idle=1639.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] 05:30:55.158 [debug] QUERY OK source="media_items" db=3.4ms idle=1640.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-22 00:08:55Z], 45] 05:30:55.161 [debug] QUERY OK source="media_items" db=2.4ms idle=1644.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 an uncaught exception in Cloudflare's Rust infrastructure caused their services to go down and by extension large parts of the internet.\n\nCloudflare Blog Links\nhttps://blog.cloudflare.com/18-november-2025-outage/\nhttps://blog.cloudflare.com/20-percent-internet-upgrade/\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", "Cloudflare Breaks the Internet (again)", "c5770a9e-fa76-453e-9030-b1f3e281c0b1", "qEkiSBxLjUU", 578, false, "https://www.youtube.com/watch?v=qEkiSBxLjUU", 14, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e112200_Cloudflare Breaks the Internet (again).mp4", false, false, false, 45, [], 98, ~U[2025-11-22 00:08:55Z], ~U[2026-03-01 11:30:55Z], ~U[2026-03-01 11:30:55Z], "In this video I discuss how an uncaught exception in Cloudflare's Rust infrastructure caused their services to go down and by extension large parts of the internet.\n\nCloudflare Blog Links\nhttps://blog.cloudflare.com/18-november-2025-outage/\nhttps://blog.cloudflare.com/20-percent-internet-upgrade/\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", "Cloudflare Breaks the Internet (again)", "qEkiSBxLjUU", 578, false, "https://www.youtube.com/watch?v=qEkiSBxLjUU", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e112200_Cloudflare Breaks the Internet (again).mp4", false, 45, ~U[2025-11-22 00:08:55Z]] 05:30:55.162 [debug] QUERY OK source="sources" db=0.5ms idle=993.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:30:55.163 [debug] QUERY OK source="media_profiles" db=0.6ms queue=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] 05:30:55.164 [debug] QUERY OK source="media_items" db=0.5ms idle=9.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 [1593544] 05:30:55.164 [debug] Current batch of media processed. Will check again in 1000ms 05:30:55.726 [debug] Current batch of media processed. Will check again in 1000ms 05:30:56.165 [debug] Current batch of media processed. Will check again in 1000ms 05:30:56.727 [debug] Current batch of media processed. Will check again in 1000ms 05:30:57.166 [debug] Current batch of media processed. Will check again in 1000ms 05:30:57.729 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Secure your passwords and logins with Proton Pass: https://proton.me/pass/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:\n\n00:00 Intro\n00:30 Sponsor: Proton Pass\n01:40 Nvidia & Intel hire Linux devs\n04:25 KDE Connect plans full redesign\n07:03 New open standard aims to unify digital services\n09:25 Ubuntu adds password feedback for sudo\n11:08 Firefox 148 out with AI killswitch\n14:06 LibreOffice Online resumes efforts\n16:10 ARM & Linaro create CoreCollective for ARM\n18:02 SystemD removes support for SysV Init\n20:06 Microsoft improves compatibility between DX and Vulkan\n21:30 Sponsor: Tuxedo Computers\n\n\nLinks:\n\nNvidia &Intel hire Linux devs\nhttps://www.gamingonlinux.com/2026/02/nvidia-hiring-linux-driver-engineers-to-help-with-vulkan-proton-and-more/\nhttps://www.phoronix.com/news/Intel-Linux-Jobs-February-2026\n\nKDE Connect plans full redesign\nhttps://tintotint.eu/programming/kde-connect/\n\nNew open standard aims to unify digital services\nhttps://goodtech.info/openburo-standard-europeen-orchestration-alternative-microsoft-365-dinum-linagora/\nhttps://open-buro.eu/#news\n\nUbuntu adds password feedback for sudo\nhttps://www.omgubuntu.co.uk/2026/02/ubuntu-26-04-sudo-password-asterisks\n\nFirefox 148 out with AI killswitch\nhttps://www.omgubuntu.co.uk/2026/02/firefox-148-released-ai-kill-switch\n\nLibreOffice Online resumes efforts\nhttps://linuxiac.com/libreoffice-online-project-reopened-with-new-community-focus/\nhttps://en.ubunlog.com/LibreOffice-Online-Resurrection-Conflict-Collabora-Document-Foundation/\n\nARM & Linaro create CoreCollective for ARM\nhttps://www.phoronix.com/news/CoreCollective\n\nSystemD removes support for SysV Init\nhttps://github.com/systemd/systemd/releases/tag/v260-rc1\n\nMicrosoft improves compatibility between DX and Vulkan\nhttps://www.phoronix.com/news/DX-Shader-Compiler-Better-VLK\n\n#linuxdistro #linuxdesktop #technews", "duration" => 1397, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022800_Nvidia & Intel focus on Linux, KDE Connect redesign, standard for digital apps - Linux Weekly News.mp4", "id" => "lGUU1mfq-40", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=lGUU1mfq-40", "playlist_index" => 1, "timestamp" => 1772269201, "title" => "Nvidia & Intel focus on Linux, KDE Connect redesign, standard for digital apps - Linux Weekly News", "upload_date" => "20260228"} 05:30:57.730 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1215.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:30:57.731 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1216.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:30:57.742 [debug] QUERY OK source="media_items" db=10.6ms idle=1217.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-28 09:00:01Z], 43] 05:30:57.749 [debug] QUERY OK source="media_items" db=4.8ms idle=1228.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" ["Secure your passwords and logins with Proton Pass: https://proton.me/pass/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:\n\n00:00 Intro\n00:30 Sponsor: Proton Pass\n01:40 Nvidia & Intel hire Linux devs\n04:25 KDE Connect plans full redesign\n07:03 New open standard aims to unify digital services\n09:25 Ubuntu adds password feedback for sudo\n11:08 Firefox 148 out with AI killswitch\n14:06 LibreOffice Online resumes efforts\n16:10 ARM & Linaro create CoreCollective for ARM\n18:02 SystemD removes support for SysV Init\n20:06 Microsoft improves compatibility between DX and Vulkan\n21:30 Sponsor: Tuxedo Computers\n\n\nLinks:\n\nNvidia &Intel hire Linux devs\nhttps://www.gamingonlinux.com/2026/02/nvidia-hiring-linux-driver-engineers-to-help-with-vulkan-proton-and-more/\nhttps://www.phoronix.com/news/Intel-Linux-Jobs-February-2026\n\nKDE Connect plans full redesign\nhttps://tintotint.eu/programming/kde-connect/\n\nNew open standard aims to unify digital services\nhttps://goodtech.info/openburo-standard-europeen-orchestration-alternative-microsoft-365-dinum-linagora/\nhttps://open-buro.eu/#news\n\nUbuntu adds password feedback for sudo\nhttps://www.omgubuntu.co.uk/2026/02/ubuntu-26-04-sudo-password-asterisks\n\nFirefox 148 out with AI killswitch\nhttps://www.omgubuntu.co.uk/2026/02/firefox-148-released-ai-kill-switch\n\nLibreOffice Online resumes efforts\nhttps://linuxiac.com/libreoffice-online-project-reopened-with-new-community-focus/\nhttps://en.ubunlog.com/LibreOffice-Online-Resurrection-Conflict-Collabora-Document-Foundation/\n\nARM & Linaro create CoreCollective for ARM\nhttps://www.phoronix.com/news/CoreCollective\n\nSystemD removes support for SysV Init\nhttps://github.com/systemd/systemd/releases/tag/v260-rc1\n\nMicrosoft improves compatibility between DX and Vulkan\nhttps://www.phoronix.com/news/DX-Shader-Compiler-Better-VLK\n\n#linuxdistro #linuxdesktop #technews", "Nvidia & Intel focus on Linux, KDE Connect redesign, standard for digital apps - Linux Weekly News", "f671d5c3-8b0d-4f41-8804-af88bb579478", "lGUU1mfq-40", 1397, false, "https://www.youtube.com/watch?v=lGUU1mfq-40", 1, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022800_Nvidia & Intel focus on Linux, KDE Connect redesign, standard for digital apps - Linux Weekly News.mp4", false, false, false, 43, [], 98, ~U[2026-02-28 09:00:01Z], ~U[2026-03-01 11:30:57Z], ~U[2026-03-01 11:30:57Z], "Secure your passwords and logins with Proton Pass: https://proton.me/pass/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:\n\n00:00 Intro\n00:30 Sponsor: Proton Pass\n01:40 Nvidia & Intel hire Linux devs\n04:25 KDE Connect plans full redesign\n07:03 New open standard aims to unify digital services\n09:25 Ubuntu adds password feedback for sudo\n11:08 Firefox 148 out with AI killswitch\n14:06 LibreOffice Online resumes efforts\n16:10 ARM & Linaro create CoreCollective for ARM\n18:02 SystemD removes support for SysV Init\n20:06 Microsoft improves compatibility between DX and Vulkan\n21:30 Sponsor: Tuxedo Computers\n\n\nLinks:\n\nNvidia &Intel hire Linux devs\nhttps://www.gamingonlinux.com/2026/02/nvidia-hiring-linux-driver-engineers-to-help-with-vulkan-proton-and-more/\nhttps://www.phoronix.com/news/Intel-Linux-Jobs-February-2026\n\nKDE Connect plans full redesign\nhttps://tintotint.eu/programming/kde-connect/\n\nNew open standard aims to unify digital services\nhttps://goodtech.info/openburo-standard-europeen-orchestration-alternative-microsoft-365-dinum-linagora/\nhttps://open-buro.eu/#news\n\nUbuntu adds password feedback for sudo\nhttps://www.omgubuntu.co.uk/2026/02/ubuntu-26-04-sudo-password-asterisks\n\nFirefox 148 out with AI killswitch\nhttps://www.omgubuntu.co.uk/2026/02/firefox-148-released-ai-kill-switch\n\nLibreOffice Online resumes efforts\nhttps://linuxiac.com/libreoffice-online-project-reopened-with-new-community-focus/\nhttps://en.ubunlog.com/LibreOffice-Online-Resurrection-Conflict-Collabora-Document-Foundation/\n\nARM & Linaro create CoreCollective for ARM\nhttps://www.phoronix.com/news/CoreCollective\n\nSystemD removes support for SysV Init\nhttps://github.com/systemd/systemd/releases/tag/v260-rc1\n\nMicrosoft improves compatibility between DX and Vulkan\nhttps://www.phoronix.com/news/DX-Shader-Compiler-Better-VLK\n\n#linuxdistro #linuxdesktop #technews", "Nvidia & Intel focus on Linux, KDE Connect redesign, standard for digital apps - Linux Weekly News", "lGUU1mfq-40", 1397, false, "https://www.youtube.com/watch?v=lGUU1mfq-40", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022800_Nvidia & Intel focus on Linux, KDE Connect redesign, standard for digital apps - Linux Weekly News.mp4", false, 43, ~U[2026-02-28 09:00:01Z]] 05:30:57.750 [debug] QUERY OK source="sources" db=0.8ms idle=574.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:30:57.751 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=20.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] 05:30:57.753 [debug] QUERY OK source="media_items" db=0.7ms idle=20.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 [2373662] 05:30:57.753 [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 KDE Connect plans full redesign\n03:43 Microsoft improves compatibility between DX and Vulkan\n05:06 Ubuntu adds password feedback for sudo\n\n\n\nLinks:\nKDE Connect plans full redesign\nhttps://tintotint.eu/programming/kde-connect/\n\nMicrosoft improves compatibility between DX and Vulkan\nhttps://www.phoronix.com/news/DX-Shader-Compiler-Better-VLK\n\nUbuntu adds password feedback for sudo\nhttps://www.omgubuntu.co.uk/2026/02/ubuntu-26-04-sudo-password-asterisks", "duration" => 472, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022700_Daily Linux News - S03E40 - KDE Connect redesign, Ubuntu adds password feedback.NA", "id" => "IoCPWX_oYb0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=IoCPWX_oYb0", "playlist_index" => 2, "timestamp" => 1772185479, "title" => "Daily Linux News - S03E40 - KDE Connect redesign, Ubuntu adds password feedback", "upload_date" => "20260227"} 05:30:57.756 [debug] QUERY OK source="sources" db=1.7ms queue=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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 05:30:57.757 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=7.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 05:30:57.767 [debug] QUERY OK source="media_items" db=9.8ms queue=0.1ms idle=6.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-27 09:44:39Z], 43] 05:30:57.771 [debug] QUERY OK source="media_items" db=2.7ms queue=0.1ms idle=16.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 KDE Connect plans full redesign\n03:43 Microsoft improves compatibility between DX and Vulkan\n05:06 Ubuntu adds password feedback for sudo\n\n\n\nLinks:\nKDE Connect plans full redesign\nhttps://tintotint.eu/programming/kde-connect/\n\nMicrosoft improves compatibility between DX and Vulkan\nhttps://www.phoronix.com/news/DX-Shader-Compiler-Better-VLK\n\nUbuntu adds password feedback for sudo\nhttps://www.omgubuntu.co.uk/2026/02/ubuntu-26-04-sudo-password-asterisks", "Daily Linux News - S03E40 - KDE Connect redesign, Ubuntu adds password feedback", "e30b8bff-2a83-45f3-b189-574ecda3075c", "IoCPWX_oYb0", 472, false, "https://www.youtube.com/watch?v=IoCPWX_oYb0", 2, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022700_Daily Linux News - S03E40 - KDE Connect redesign, Ubuntu adds password feedback.NA", false, false, false, 43, [], 98, ~U[2026-02-27 09:44:39Z], ~U[2026-03-01 11:30:57Z], ~U[2026-03-01 11:30: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 KDE Connect plans full redesign\n03:43 Microsoft improves compatibility between DX and Vulkan\n05:06 Ubuntu adds password feedback for sudo\n\n\n\nLinks:\nKDE Connect plans full redesign\nhttps://tintotint.eu/programming/kde-connect/\n\nMicrosoft improves compatibility between DX and Vulkan\nhttps://www.phoronix.com/news/DX-Shader-Compiler-Better-VLK\n\nUbuntu adds password feedback for sudo\nhttps://www.omgubuntu.co.uk/2026/02/ubuntu-26-04-sudo-password-asterisks", "Daily Linux News - S03E40 - KDE Connect redesign, Ubuntu adds password feedback", "IoCPWX_oYb0", 472, false, "https://www.youtube.com/watch?v=IoCPWX_oYb0", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022700_Daily Linux News - S03E40 - KDE Connect redesign, Ubuntu adds password feedback.NA", false, 43, ~U[2026-02-27 09:44:39Z]] 05:30:57.772 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=18.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:30:57.773 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=16.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] 05:30:57.775 [debug] QUERY OK source="media_items" db=0.8ms idle=17.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 [2366280] 05:30:57.775 [info] Kicking off download for media item #2366280 (IoCPWX_oYb0) 05:30:57.780 [debug] Current batch of media processed. Will check again in 1000ms 05:30:58.167 [debug] Current batch of media processed. Will check again in 1000ms 05:30:58.780 [debug] Current batch of media processed. Will check again in 1000ms 05:30:59.168 [debug] Current batch of media processed. Will check again in 1000ms 05:30:59.781 [debug] Current batch of media processed. Will check again in 1000ms 05:31:00.098 [info] {"source":"oban","duration":522,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:31:00.170 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how a Free Software Developer has created software that allows people to use all the features of airpods that are normally only reserved for Apples hardware on Android and Linux devices. If this project is successful people will be able to use the best consumer earbuds ever made without being forced to buy an iPhone, iPad, or Macbook.\n\nTry out the project here\nhttps://github.com/kavishdevar/librepods\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" => 549, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e111800_Based Developer Makes AirPods Open Source.mp4", "id" => "m_Mr4bw8Pow", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=m_Mr4bw8Pow", "playlist_index" => 15, "timestamp" => 1763481259, "title" => "Based Developer Makes AirPods Open Source", "upload_date" => "20251118"} 05:31:00.172 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms idle=656.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:31:00.176 [debug] QUERY OK source="sources" db=1.5ms queue=0.5ms idle=659.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:31:00.183 [debug] QUERY OK source="media_items" db=7.0ms queue=0.1ms idle=661.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-18 15:54:19Z], 45] 05:31:00.193 [debug] QUERY OK source="media_items" db=7.4ms queue=0.1ms idle=86.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 a Free Software Developer has created software that allows people to use all the features of airpods that are normally only reserved for Apples hardware on Android and Linux devices. If this project is successful people will be able to use the best consumer earbuds ever made without being forced to buy an iPhone, iPad, or Macbook.\n\nTry out the project here\nhttps://github.com/kavishdevar/librepods\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", "Based Developer Makes AirPods Open Source", "c78ce6bc-b7e6-429a-b3df-d5780f204ac7", "m_Mr4bw8Pow", 549, false, "https://www.youtube.com/watch?v=m_Mr4bw8Pow", 15, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e111800_Based Developer Makes AirPods Open Source.mp4", false, false, false, 45, [], 98, ~U[2025-11-18 15:54:19Z], ~U[2026-03-01 11:31:00Z], ~U[2026-03-01 11:31:00Z], "In this video I discuss how a Free Software Developer has created software that allows people to use all the features of airpods that are normally only reserved for Apples hardware on Android and Linux devices. If this project is successful people will be able to use the best consumer earbuds ever made without being forced to buy an iPhone, iPad, or Macbook.\n\nTry out the project here\nhttps://github.com/kavishdevar/librepods\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", "Based Developer Makes AirPods Open Source", "m_Mr4bw8Pow", 549, false, "https://www.youtube.com/watch?v=m_Mr4bw8Pow", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e111800_Based Developer Makes AirPods Open Source.mp4", false, 45, ~U[2025-11-18 15:54:19Z]] 05:31:00.195 [debug] QUERY OK source="sources" db=1.4ms queue=0.2ms 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" = ?) [45] 05:31:00.197 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.1ms idle=20.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] 05:31:00.200 [debug] QUERY OK source="media_items" db=2.1ms queue=0.1ms idle=14.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 [1568361] 05:31:00.200 [debug] Current batch of media processed. Will check again in 1000ms 05:31:00.783 [debug] Current batch of media processed. Will check again in 1000ms 05:31:01.201 [debug] Current batch of media processed. Will check again in 1000ms 05:31:01.784 [debug] Current batch of media processed. Will check again in 1000ms 05:31:02.202 [debug] Current batch of media processed. Will check again in 1000ms 05:31:02.785 [debug] Current batch of media processed. Will check again in 1000ms 05:31:03.203 [debug] Current batch of media processed. Will check again in 1000ms 05:31:03.787 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Grab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en# \n\nWhy I don't like Tiling WMs: https://youtu.be/aeifzxaDOVo\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:38 Cosmic\n02:48 Pantheon\n04:30 KDE Plasma\n06:26 Cinnamon\n08:29 Budgie\n10:34 XFCE\n12.36 MATE\n14:21 GNOME\n17:07 Deepin\n18:46 Unity\n20:10 LXQt\n21:21 Conclusion\n23:54 Sponsor: Tuxedo Computers\n\n#linuxdesktop #linuxdistro #tierlist", "duration" => 1540, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022600_Ranking Linux desktop environments for 2026 !.mp4", "id" => "IiluQ6dJyL8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=IiluQ6dJyL8", "playlist_index" => 3, "timestamp" => 1772116373, "title" => "Ranking Linux desktop environments for 2026 !", "upload_date" => "20260226"} 05:31:03.788 [debug] QUERY OK source="sources" db=0.5ms idle=585.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:31:03.789 [debug] QUERY OK source="sources" db=0.4ms idle=274.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:31:03.798 [debug] QUERY OK source="media_items" db=9.3ms idle=274.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-26 14:32:53Z], 43] 05:31:03.803 [debug] QUERY OK source="media_items" db=3.2ms idle=285.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" ["Grab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en# \n\nWhy I don't like Tiling WMs: https://youtu.be/aeifzxaDOVo\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:38 Cosmic\n02:48 Pantheon\n04:30 KDE Plasma\n06:26 Cinnamon\n08:29 Budgie\n10:34 XFCE\n12.36 MATE\n14:21 GNOME\n17:07 Deepin\n18:46 Unity\n20:10 LXQt\n21:21 Conclusion\n23:54 Sponsor: Tuxedo Computers\n\n#linuxdesktop #linuxdistro #tierlist", "Ranking Linux desktop environments for 2026 !", "b6c25c2b-3238-4ec1-9906-55bbf7ec124c", "IiluQ6dJyL8", 1540, false, "https://www.youtube.com/watch?v=IiluQ6dJyL8", 3, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022600_Ranking Linux desktop environments for 2026 !.mp4", false, false, false, 43, [], 97, ~U[2026-02-26 14:32:53Z], ~U[2026-03-01 11:31:03Z], ~U[2026-03-01 11:31:03Z], "Grab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en# \n\nWhy I don't like Tiling WMs: https://youtu.be/aeifzxaDOVo\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:38 Cosmic\n02:48 Pantheon\n04:30 KDE Plasma\n06:26 Cinnamon\n08:29 Budgie\n10:34 XFCE\n12.36 MATE\n14:21 GNOME\n17:07 Deepin\n18:46 Unity\n20:10 LXQt\n21:21 Conclusion\n23:54 Sponsor: Tuxedo Computers\n\n#linuxdesktop #linuxdistro #tierlist", "Ranking Linux desktop environments for 2026 !", "IiluQ6dJyL8", 1540, false, "https://www.youtube.com/watch?v=IiluQ6dJyL8", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022600_Ranking Linux desktop environments for 2026 !.mp4", false, 43, ~U[2026-02-26 14:32:53Z]] 05:31:03.804 [debug] QUERY OK source="sources" db=0.7ms 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" = ?) [43] 05:31:03.805 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.1ms idle=16.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] 05:31:03.807 [debug] QUERY OK source="media_items" db=0.8ms idle=17.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 [2360293] 05:31:03.807 [debug] Current batch of media processed. Will check again in 1000ms 05:31:04.204 [debug] Current batch of media processed. Will check again in 1000ms 05:31:04.809 [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 Fedora smartphone edition\n02:48 ARM & Linaro create CoreCollective for ARM\n04:31 SystemD removes support for SysV Init\n06:29 Lutris now supports Valve's Linux runtime\n\n\nLinks:\nFedora smartphone edition\nhttps://itsfoss.com/news/fedora-pocketblue-remix-overview/\n\nARM & Linaro create CoreCollective for ARM\nhttps://www.phoronix.com/news/CoreCollective\n\nSystemD removes support for SysV Init\nhttps://github.com/systemd/systemd/releases/tag/v260-rc1\n\nLutris now supports Valve's Linux runtime\nhttps://www.gamingonlinux.com/2026/02/lutris-v0-5-21-and-v0-5-22-arrive-with-valves-sniper-runtime-support-and-new-game-runners/", "duration" => 523, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022600_Daily Linux News - S03E39 - Fedora for phones, ARM open source initiative.NA", "id" => "lJHsCc57j3U", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=lJHsCc57j3U", "playlist_index" => 4, "timestamp" => 1772097437, "title" => "Daily Linux News - S03E39 - Fedora for phones, ARM open source initiative", "upload_date" => "20260226"} 05:31:04.810 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=1006.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] 05:31:04.811 [debug] QUERY OK source="sources" db=0.7ms idle=1006.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:31:04.822 [debug] QUERY OK source="media_items" db=10.5ms idle=1006.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-26 09:17:17Z], 43] 05:31:04.828 [debug] QUERY OK source="media_items" db=3.5ms idle=1016.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 Fedora smartphone edition\n02:48 ARM & Linaro create CoreCollective for ARM\n04:31 SystemD removes support for SysV Init\n06:29 Lutris now supports Valve's Linux runtime\n\n\nLinks:\nFedora smartphone edition\nhttps://itsfoss.com/news/fedora-pocketblue-remix-overview/\n\nARM & Linaro create CoreCollective for ARM\nhttps://www.phoronix.com/news/CoreCollective\n\nSystemD removes support for SysV Init\nhttps://github.com/systemd/systemd/releases/tag/v260-rc1\n\nLutris now supports Valve's Linux runtime\nhttps://www.gamingonlinux.com/2026/02/lutris-v0-5-21-and-v0-5-22-arrive-with-valves-sniper-runtime-support-and-new-game-runners/", "Daily Linux News - S03E39 - Fedora for phones, ARM open source initiative", "7ce4e535-760a-42ea-a19a-c4a08562c0c7", "lJHsCc57j3U", 523, false, "https://www.youtube.com/watch?v=lJHsCc57j3U", 4, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022600_Daily Linux News - S03E39 - Fedora for phones, ARM open source initiative.NA", false, false, false, 43, [], 97, ~U[2026-02-26 09:17:17Z], ~U[2026-03-01 11:31:04Z], ~U[2026-03-01 11:31:04Z], "👕 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 Fedora smartphone edition\n02:48 ARM & Linaro create CoreCollective for ARM\n04:31 SystemD removes support for SysV Init\n06:29 Lutris now supports Valve's Linux runtime\n\n\nLinks:\nFedora smartphone edition\nhttps://itsfoss.com/news/fedora-pocketblue-remix-overview/\n\nARM & Linaro create CoreCollective for ARM\nhttps://www.phoronix.com/news/CoreCollective\n\nSystemD removes support for SysV Init\nhttps://github.com/systemd/systemd/releases/tag/v260-rc1\n\nLutris now supports Valve's Linux runtime\nhttps://www.gamingonlinux.com/2026/02/lutris-v0-5-21-and-v0-5-22-arrive-with-valves-sniper-runtime-support-and-new-game-runners/", "Daily Linux News - S03E39 - Fedora for phones, ARM open source initiative", "lJHsCc57j3U", 523, false, "https://www.youtube.com/watch?v=lJHsCc57j3U", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022600_Daily Linux News - S03E39 - Fedora for phones, ARM open source initiative.NA", false, 43, ~U[2026-02-26 09:17:17Z]] 05:31:04.829 [debug] QUERY OK source="sources" db=0.8ms idle=622.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:31:04.830 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms idle=19.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] 05:31:04.832 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=19.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 [2358044] 05:31:04.833 [info] Kicking off download for media item #2358044 (lJHsCc57j3U) 05:31:04.836 [debug] Current batch of media processed. Will check again in 1000ms 05:31:05.205 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss a linux community effort to crowd fund the fixing of a speaker issue on the Lenovo Legion Pro 7. Could this become a more common method for fixing bugs in Free and Open Source operating systems? Follow the saga at this git repo https://github.com/nadimkobeissi/16iax10h-linux-sound-saga\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" => 567, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e111400_Can Crowd Funded Tech Support Fix a Linux Sound Bug?.mp4", "id" => "5Wv1FlUeeME", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5Wv1FlUeeME", "playlist_index" => 16, "timestamp" => 1763149170, "title" => "Can Crowd Funded Tech Support Fix a Linux Sound Bug?", "upload_date" => "20251114"} 05:31:05.207 [debug] QUERY OK source="sources" db=0.6ms idle=378.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:31:05.207 [debug] QUERY OK source="sources" db=0.5ms idle=376.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:31:05.211 [debug] QUERY OK source="media_items" db=3.3ms idle=375.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-14 19:39:30Z], 45] 05:31:05.214 [debug] QUERY OK source="media_items" db=2.1ms idle=375.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 a linux community effort to crowd fund the fixing of a speaker issue on the Lenovo Legion Pro 7. Could this become a more common method for fixing bugs in Free and Open Source operating systems? Follow the saga at this git repo https://github.com/nadimkobeissi/16iax10h-linux-sound-saga\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", "Can Crowd Funded Tech Support Fix a Linux Sound Bug?", "17f5f079-3eda-464f-8008-dea4a67e3380", "5Wv1FlUeeME", 567, false, "https://www.youtube.com/watch?v=5Wv1FlUeeME", 16, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e111400_Can Crowd Funded Tech Support Fix a Linux Sound Bug?.mp4", false, false, false, 45, [], 98, ~U[2025-11-14 19:39:30Z], ~U[2026-03-01 11:31:05Z], ~U[2026-03-01 11:31:05Z], "In this video I discuss a linux community effort to crowd fund the fixing of a speaker issue on the Lenovo Legion Pro 7. Could this become a more common method for fixing bugs in Free and Open Source operating systems? Follow the saga at this git repo https://github.com/nadimkobeissi/16iax10h-linux-sound-saga\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", "Can Crowd Funded Tech Support Fix a Linux Sound Bug?", "5Wv1FlUeeME", 567, false, "https://www.youtube.com/watch?v=5Wv1FlUeeME", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e111400_Can Crowd Funded Tech Support Fix a Linux Sound Bug?.mp4", false, 45, ~U[2025-11-14 19:39:30Z]] 05:31:05.215 [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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 05:31:05.216 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 05:31:05.217 [debug] QUERY OK source="media_items" db=0.3ms 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 [1534729] 05:31:05.217 [debug] Current batch of media processed. Will check again in 1000ms 05:31:05.837 [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 LibreOffice Online resumes efforts\n02:30 Australia shares open source malware analysis suite\n04:41 Interesting Cosmic update hints at KDE theming\n\n\nLinks:\n\nLibreOffice Online resumes efforts\nhttps://linuxiac.com/libreoffice-online-project-reopened-with-new-community-focus/\n\nAustralia shares open source malware analysis suite\nhttps://itsfoss.com/news/azul-malware-analysis-repository/\n\nInteresting Cosmic update hints at KDE theming\nhttps://blog.system76.com/post/cosmic-1-0-8-released", "duration" => 460, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022500_Daily Linux News - S03E38 - Australia open sources malware repo, Cosmic update hints at KDE theming.NA", "id" => "leq-qvYXsp0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=leq-qvYXsp0", "playlist_index" => 5, "timestamp" => 1772015650, "title" => "Daily Linux News - S03E38 - Australia open sources malware repo, Cosmic update hints at KDE theming", "upload_date" => "20260225"} 05:31:05.839 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=626.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:31:05.840 [debug] QUERY OK source="sources" db=0.2ms idle=625.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] 05:31:05.849 [debug] QUERY OK source="media_items" db=8.7ms queue=0.1ms idle=625.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-25 10:34:10Z], 43] 05:31:05.858 [debug] QUERY OK source="media_items" db=7.4ms idle=634.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 LibreOffice Online resumes efforts\n02:30 Australia shares open source malware analysis suite\n04:41 Interesting Cosmic update hints at KDE theming\n\n\nLinks:\n\nLibreOffice Online resumes efforts\nhttps://linuxiac.com/libreoffice-online-project-reopened-with-new-community-focus/\n\nAustralia shares open source malware analysis suite\nhttps://itsfoss.com/news/azul-malware-analysis-repository/\n\nInteresting Cosmic update hints at KDE theming\nhttps://blog.system76.com/post/cosmic-1-0-8-released", "Daily Linux News - S03E38 - Australia open sources malware repo, Cosmic update hints at KDE theming", "8e99b198-82c0-49c9-a9e9-04bc2ab800f8", "leq-qvYXsp0", 460, false, "https://www.youtube.com/watch?v=leq-qvYXsp0", 5, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022500_Daily Linux News - S03E38 - Australia open sources malware repo, Cosmic update hints at KDE theming.NA", false, false, false, 43, [], 98, ~U[2026-02-25 10:34:10Z], ~U[2026-03-01 11:31:05Z], ~U[2026-03-01 11:31:05Z], "👕 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 LibreOffice Online resumes efforts\n02:30 Australia shares open source malware analysis suite\n04:41 Interesting Cosmic update hints at KDE theming\n\n\nLinks:\n\nLibreOffice Online resumes efforts\nhttps://linuxiac.com/libreoffice-online-project-reopened-with-new-community-focus/\n\nAustralia shares open source malware analysis suite\nhttps://itsfoss.com/news/azul-malware-analysis-repository/\n\nInteresting Cosmic update hints at KDE theming\nhttps://blog.system76.com/post/cosmic-1-0-8-released", "Daily Linux News - S03E38 - Australia open sources malware repo, Cosmic update hints at KDE theming", "leq-qvYXsp0", 460, false, "https://www.youtube.com/watch?v=leq-qvYXsp0", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022500_Daily Linux News - S03E38 - Australia open sources malware repo, Cosmic update hints at KDE theming.NA", false, 43, ~U[2026-02-25 10:34:10Z]] 05:31:05.859 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=641.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:31:05.859 [debug] QUERY OK source="media_profiles" db=0.4ms idle=19.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] 05:31:05.861 [debug] QUERY OK source="media_items" db=0.6ms idle=20.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 [2350851] 05:31:05.861 [info] Kicking off download for media item #2350851 (leq-qvYXsp0) 05:31:05.866 [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 Nvidia also hires Linux devs\n02:08 Firefox 148 out with AI killswitch\n06:00 New version of TuneD to improve power management\n07:48 0. A.D. no longer in alpha\n\n\nLinks:\nNvidia also hires Linux devs\nhttps://www.gamingonlinux.com/2026/02/nvidia-hiring-linux-driver-engineers-to-help-with-vulkan-proton-and-more/\n\nFirefox 148 out with AI killswitch\nhttps://www.omgubuntu.co.uk/2026/02/firefox-148-released-ai-kill-switch\n\nNew version of TuneD to improve power management\nhttps://www.phoronix.com/news/Red-Hat-Tuned-2.27\n\n0. A.D. no longer in alpha\nhttps://play0ad.com/new-release-0-a-d-release-28-boiorix/", "duration" => 615, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022400_Daily Linux News - S03E37 - Firefox 148, Nvidia hiring Linux devs.NA", "id" => "G9A4oHW0fAk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=G9A4oHW0fAk", "playlist_index" => 6, "timestamp" => 1771926347, "title" => "Daily Linux News - S03E37 - Firefox 148, Nvidia hiring Linux devs", "upload_date" => "20260224"} 05:31:05.866 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms 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" IN (?)) [43] 05:31:05.867 [debug] QUERY OK source="sources" db=0.3ms 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] 05:31:05.876 [debug] QUERY OK source="media_items" db=8.8ms 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-02-24 09:45:47Z], 43] 05:31:05.880 [debug] QUERY OK source="media_items" db=2.6ms idle=16.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 Nvidia also hires Linux devs\n02:08 Firefox 148 out with AI killswitch\n06:00 New version of TuneD to improve power management\n07:48 0. A.D. no longer in alpha\n\n\nLinks:\nNvidia also hires Linux devs\nhttps://www.gamingonlinux.com/2026/02/nvidia-hiring-linux-driver-engineers-to-help-with-vulkan-proton-and-more/\n\nFirefox 148 out with AI killswitch\nhttps://www.omgubuntu.co.uk/2026/02/firefox-148-released-ai-kill-switch\n\nNew version of TuneD to improve power management\nhttps://www.phoronix.com/news/Red-Hat-Tuned-2.27\n\n0. A.D. no longer in alpha\nhttps://play0ad.com/new-release-0-a-d-release-28-boiorix/", "Daily Linux News - S03E37 - Firefox 148, Nvidia hiring Linux devs", "841cefee-e443-468c-ab36-063c43a6dd82", "G9A4oHW0fAk", 615, false, "https://www.youtube.com/watch?v=G9A4oHW0fAk", 6, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022400_Daily Linux News - S03E37 - Firefox 148, Nvidia hiring Linux devs.NA", false, false, false, 43, [], 98, ~U[2026-02-24 09:45:47Z], ~U[2026-03-01 11:31:05Z], ~U[2026-03-01 11:31:05Z], "👕 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 Nvidia also hires Linux devs\n02:08 Firefox 148 out with AI killswitch\n06:00 New version of TuneD to improve power management\n07:48 0. A.D. no longer in alpha\n\n\nLinks:\nNvidia also hires Linux devs\nhttps://www.gamingonlinux.com/2026/02/nvidia-hiring-linux-driver-engineers-to-help-with-vulkan-proton-and-more/\n\nFirefox 148 out with AI killswitch\nhttps://www.omgubuntu.co.uk/2026/02/firefox-148-released-ai-kill-switch\n\nNew version of TuneD to improve power management\nhttps://www.phoronix.com/news/Red-Hat-Tuned-2.27\n\n0. A.D. no longer in alpha\nhttps://play0ad.com/new-release-0-a-d-release-28-boiorix/", "Daily Linux News - S03E37 - Firefox 148, Nvidia hiring Linux devs", "G9A4oHW0fAk", 615, false, "https://www.youtube.com/watch?v=G9A4oHW0fAk", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022400_Daily Linux News - S03E37 - Firefox 148, Nvidia hiring Linux devs.NA", false, 43, ~U[2026-02-24 09:45:47Z]] 05:31:05.881 [debug] QUERY OK source="sources" db=0.5ms 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" = ?) [43] 05:31:05.882 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=15.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] 05:31:05.883 [debug] QUERY OK source="media_items" db=0.6ms idle=15.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 [2342586] 05:31:05.883 [info] Kicking off download for media item #2342586 (G9A4oHW0fAk) 05:31:05.887 [debug] Current batch of media processed. Will check again in 1000ms 05:31:06.218 [debug] Current batch of media processed. Will check again in 1000ms 05:31:06.888 [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" => 865, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022300_Daily Linux News - S03E36 - Intel hires Linux devs again, New standard for online workspaces.NA", "id" => "CYuRCN7Kjg0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=CYuRCN7Kjg0", "playlist_index" => 7, "timestamp" => 1771842463, "title" => "Daily Linux News - S03E36 - Intel hires Linux devs again, New standard for online workspaces", "upload_date" => "20260223"} 05:31:06.890 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=1007.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] 05:31:06.891 [debug] QUERY OK source="sources" db=0.8ms idle=1008.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:31:06.904 [debug] QUERY OK source="media_items" db=11.9ms idle=1008.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-23 10:27:43Z], 43] 05:31:06.908 [debug] QUERY OK source="media_items" db=2.9ms queue=0.1ms idle=1017.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/", "Daily Linux News - S03E36 - Intel hires Linux devs again, New standard for online workspaces", "4dd67128-4e82-4b16-9ba7-0cabcd74f2a6", "CYuRCN7Kjg0", 865, false, "https://www.youtube.com/watch?v=CYuRCN7Kjg0", 7, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022300_Daily Linux News - S03E36 - Intel hires Linux devs again, New standard for online workspaces.NA", false, false, false, 43, [], 97, ~U[2026-02-23 10:27:43Z], ~U[2026-03-01 11:31:06Z], ~U[2026-03-01 11:31:06Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/", "Daily Linux News - S03E36 - Intel hires Linux devs again, New standard for online workspaces", "CYuRCN7Kjg0", 865, false, "https://www.youtube.com/watch?v=CYuRCN7Kjg0", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022300_Daily Linux News - S03E36 - Intel hires Linux devs again, New standard for online workspaces.NA", false, 43, ~U[2026-02-23 10:27:43Z]] 05:31:06.909 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=698.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:31:06.910 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.2ms idle=19.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] 05:31:06.912 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=19.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 [2335008] 05:31:06.912 [info] Kicking off download for media item #2335008 (CYuRCN7Kjg0) 05:31:06.917 [debug] Current batch of media processed. Will check again in 1000ms 05:31:07.219 [debug] Current batch of media processed. Will check again in 1000ms 05:31:07.918 [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" => 1378, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022300_Patroncast S06E08 - Enshittification & other less terrible things.NA", "id" => "cvcwU3-g3rs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=cvcwU3-g3rs", "playlist_index" => 8, "timestamp" => 1771835752, "title" => "Patroncast S06E08 - Enshittification & other less terrible things", "upload_date" => "20260223"} 05:31:07.919 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1009.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] 05:31:07.920 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1009.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] 05:31:07.931 [debug] QUERY OK source="media_items" db=9.9ms idle=1008.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-23 08:35:52Z], 43] 05:31:07.933 [debug] QUERY OK source="media_items" db=1.6ms queue=0.1ms idle=1015.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/", "Patroncast S06E08 - Enshittification & other less terrible things", "fb92337f-a76f-4efe-a5fb-3acf11a36318", "cvcwU3-g3rs", 1378, false, "https://www.youtube.com/watch?v=cvcwU3-g3rs", 8, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022300_Patroncast S06E08 - Enshittification & other less terrible things.NA", false, false, false, 43, [], 97, ~U[2026-02-23 08:35:52Z], ~U[2026-03-01 11:31:07Z], ~U[2026-03-01 11:31:07Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/", "Patroncast S06E08 - Enshittification & other less terrible things", "cvcwU3-g3rs", 1378, false, "https://www.youtube.com/watch?v=cvcwU3-g3rs", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022300_Patroncast S06E08 - Enshittification & other less terrible things.NA", false, 43, ~U[2026-02-23 08:35:52Z]] 05:31:07.934 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=721.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:31:07.936 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=15.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:31:07.937 [debug] QUERY OK source="media_items" db=0.7ms idle=15.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 [2334681] 05:31:07.937 [info] Kicking off download for media item #2334681 (cvcwU3-g3rs) 05:31:07.941 [debug] Current batch of media processed. Will check again in 1000ms 05:31:08.220 [debug] Current batch of media processed. Will check again in 1000ms 05:31:08.942 [debug] Current batch of media processed. Will check again in 1000ms 05:31:09.221 [debug] Current batch of media processed. Will check again in 1000ms 05:31:09.943 [debug] Current batch of media processed. Will check again in 1000ms 05:31:10.222 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video we take a look at how China has monetized toilet paper in public bathrooms. You can pay 0.5 Yuan (about $0.07) or watch a 30 second ad to receive a small portion of toilet paper to clean yourself. Will this addition to the social credit system curtail people stealing free TP or will monetized toilet paper cause a bigger mess in Chinese bathrooms.\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" => 574, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e110800_China Is Forcing People To Watch Ads for Free Toilet Paper.mp4", "id" => "c8Phszco8TY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=c8Phszco8TY", "playlist_index" => 17, "timestamp" => 1762633231, "title" => "China Is Forcing People To Watch Ads for Free Toilet Paper", "upload_date" => "20251108"} 05:31:10.224 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=708.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:31:10.225 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=709.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:31:10.230 [info] {"args":{"id":51},"id":189097,"meta":{},"system_time":1772364670229954889,"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"]} 05:31:10.231 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms 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" = ?) [51] 05:31:10.232 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=7.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:31:10.232 [debug] QUERY OK source="media_items" db=7.1ms queue=0.3ms idle=710.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-08 20:20:31Z], 45] 05:31:10.233 [debug] QUERY OK source="media_profiles" db=1.0ms queue=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] 05:31:10.234 [debug] QUERY OK source="settings" db=0.5ms queue=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 [] 05:31:10.235 [debug] Fetching recent media IDs from YouTube RSS feed for source: UCUMwY9iS8oMyWDYIe6_RmoA 05:31:10.237 [debug] QUERY OK source="media_items" db=3.7ms queue=0.1ms 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 we take a look at how China has monetized toilet paper in public bathrooms. You can pay 0.5 Yuan (about $0.07) or watch a 30 second ad to receive a small portion of toilet paper to clean yourself. Will this addition to the social credit system curtail people stealing free TP or will monetized toilet paper cause a bigger mess in Chinese bathrooms.\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", "China Is Forcing People To Watch Ads for Free Toilet Paper", "4bd3c825-7ff9-4722-a0f8-68e5fa4b444f", "c8Phszco8TY", 574, false, "https://www.youtube.com/watch?v=c8Phszco8TY", 17, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e110800_China Is Forcing People To Watch Ads for Free Toilet Paper.mp4", false, false, false, 45, [], 98, ~U[2025-11-08 20:20:31Z], ~U[2026-03-01 11:31:10Z], ~U[2026-03-01 11:31:10Z], "In this video we take a look at how China has monetized toilet paper in public bathrooms. You can pay 0.5 Yuan (about $0.07) or watch a 30 second ad to receive a small portion of toilet paper to clean yourself. Will this addition to the social credit system curtail people stealing free TP or will monetized toilet paper cause a bigger mess in Chinese bathrooms.\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", "China Is Forcing People To Watch Ads for Free Toilet Paper", "c8Phszco8TY", 574, false, "https://www.youtube.com/watch?v=c8Phszco8TY", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e110800_China Is Forcing People To Watch Ads for Free Toilet Paper.mp4", false, 45, ~U[2025-11-08 20:20:31Z]] 05:31:10.238 [debug] QUERY OK source="sources" db=0.4ms queue=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" = ?) [45] 05:31:10.240 [debug] QUERY OK source="media_profiles" db=0.7ms queue=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] 05:31:10.241 [debug] QUERY OK source="media_items" db=0.4ms idle=6.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1488252] 05:31:10.241 [debug] Current batch of media processed. Will check again in 1000ms 05:31:10.712 [debug] Media ids fetched from RSS: ["WxN9VzwoGGw", "9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI"] 05:31:10.714 [debug] QUERY OK source="media_items" db=1.5ms idle=477.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND m0."media_id" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [51, "WxN9VzwoGGw", "9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI"] 05:31:10.717 [debug] QUERY OK source="media_items" db=1.4ms queue=0.1ms idle=478.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")))) [51] 05:31:10.721 [debug] QUERY OK source="tasks" db=0.9ms idle=479.7ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189112, 51, ~U[2026-03-01 11:31:10Z], ~U[2026-03-01 11:31:10Z]] 05:31:10.723 [info] {"args":{"id":51},"id":189097,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":492149,"event":"job:stop","queue_time":113030,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 05:31:10.801 [info] {"source":"oban","duration":23445,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:31:10.944 [debug] Current batch of media processed. Will check again in 1000ms 05:31:11.241 [debug] Current batch of media processed. Will check again in 1000ms 05:31:11.945 [debug] Current batch of media processed. Will check again in 1000ms 05:31:12.242 [debug] Current batch of media processed. Will check again in 1000ms 05:31:12.947 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Use a secure, encrypted, and fast VPN with Proton VPN: https://protonvpn.com/TheLinuxEXP\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:32 Sponsor: Proton VPN\n01:44 GNOME 50 got a massive beta\n04:10 GNOME OS nearing stable release\n07:19 Plasma 6.6 released\n10:17 KDE debunks FUD around systemD\n13:06 Budgie 11 gearing up for first preview\n14:48 EU takes aim at infinite scrolling\n17:45 EU parliament blocks AI features\n19:52 AsteroidOS brings Linux to your smartwatch\n21:57 Project aims to bring NetBSD utilities to Linux\n23:41 Sponsor: Tuxedo Computers\n\n\nLinks:\nGNOME 50 got a massive beta\nhttps://9to5linux.com/gnome-50-desktop-environment-enters-public-beta-testing-with-more-new-features\n\nGNOME OS nearing stable release\nhttps://blogs.gnome.org/adrianvovk/2026/02/18/gnome-os-hackfest-fosdem-2026/\n\nPlasma 6.6 released\nhttps://kde.org/announcements/plasma/6/6.6.0/\n\nKDE debunks FUD around systemD\nhttps://www.reddit.com/r/kde/comments/1r68jmi/a_quick_antifud_faq_to_debunk_the_kde_is_forcing/\n\nBudgie 11 gearing up for first preview\nhttps://buddiesofbudgie.org/blog/chirp-5\n\nEU takes aim at infinite scrolling\nhttps://www.politico.eu/article/tiktok-meta-facebook-instagram-brussels-kill-infinite-scrolling/\n\nEU parliament blocks AI features\nhttps://www.politico.eu/article/eu-parliament-blocks-ai-features-over-cyber-privacy-fears/\n\nAsteroidOS brings Linux to your smartwatch\nhttps://itsfoss.com/news/asteroidos-2-release/\n\nProject aims to bring NetBSD utilities to Linux\nhttps://linuxiac.com/netbase-brings-netbsd-userland-utilities-to-linux/\n\n#linuxdesktop #linuxdistro #technews", "duration" => 1540, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022100_GNOME 50 and GNOME OS progress, KDE debunks systemD FUD - Linux weekly News.mp4", "id" => "IZStNPWpE_0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=IZStNPWpE_0", "playlist_index" => 9, "timestamp" => 1771667046, "title" => "GNOME 50 and GNOME OS progress, KDE debunks systemD FUD - Linux weekly News", "upload_date" => "20260221"} 05:31:12.949 [debug] QUERY OK source="sources" db=0.8ms queue=0.2ms idle=719.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:31:12.950 [debug] QUERY OK source="sources" db=0.8ms queue=0.2ms idle=434.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:31:12.965 [debug] QUERY OK source="media_items" db=14.3ms queue=0.1ms 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-02-21 09:44:06Z], 43] 05:31:12.975 [debug] QUERY OK source="media_items" db=7.1ms queue=0.2ms idle=451.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" ["Use a secure, encrypted, and fast VPN with Proton VPN: https://protonvpn.com/TheLinuxEXP\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:32 Sponsor: Proton VPN\n01:44 GNOME 50 got a massive beta\n04:10 GNOME OS nearing stable release\n07:19 Plasma 6.6 released\n10:17 KDE debunks FUD around systemD\n13:06 Budgie 11 gearing up for first preview\n14:48 EU takes aim at infinite scrolling\n17:45 EU parliament blocks AI features\n19:52 AsteroidOS brings Linux to your smartwatch\n21:57 Project aims to bring NetBSD utilities to Linux\n23:41 Sponsor: Tuxedo Computers\n\n\nLinks:\nGNOME 50 got a massive beta\nhttps://9to5linux.com/gnome-50-desktop-environment-enters-public-beta-testing-with-more-new-features\n\nGNOME OS nearing stable release\nhttps://blogs.gnome.org/adrianvovk/2026/02/18/gnome-os-hackfest-fosdem-2026/\n\nPlasma 6.6 released\nhttps://kde.org/announcements/plasma/6/6.6.0/\n\nKDE debunks FUD around systemD\nhttps://www.reddit.com/r/kde/comments/1r68jmi/a_quick_antifud_faq_to_debunk_the_kde_is_forcing/\n\nBudgie 11 gearing up for first preview\nhttps://buddiesofbudgie.org/blog/chirp-5\n\nEU takes aim at infinite scrolling\nhttps://www.politico.eu/article/tiktok-meta-facebook-instagram-brussels-kill-infinite-scrolling/\n\nEU parliament blocks AI features\nhttps://www.politico.eu/article/eu-parliament-blocks-ai-features-over-cyber-privacy-fears/\n\nAsteroidOS brings Linux to your smartwatch\nhttps://itsfoss.com/news/asteroidos-2-release/\n\nProject aims to bring NetBSD utilities to Linux\nhttps://linuxiac.com/netbase-brings-netbsd-userland-utilities-to-linux/\n\n#linuxdesktop #linuxdistro #technews", "GNOME 50 and GNOME OS progress, KDE debunks systemD FUD - Linux weekly News", "4fafcd98-2c7e-4025-aba1-bec22696bf52", "IZStNPWpE_0", 1540, false, "https://www.youtube.com/watch?v=IZStNPWpE_0", 9, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022100_GNOME 50 and GNOME OS progress, KDE debunks systemD FUD - Linux weekly News.mp4", false, false, false, 43, [], 98, ~U[2026-02-21 09:44:06Z], ~U[2026-03-01 11:31:12Z], ~U[2026-03-01 11:31:12Z], "Use a secure, encrypted, and fast VPN with Proton VPN: https://protonvpn.com/TheLinuxEXP\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:32 Sponsor: Proton VPN\n01:44 GNOME 50 got a massive beta\n04:10 GNOME OS nearing stable release\n07:19 Plasma 6.6 released\n10:17 KDE debunks FUD around systemD\n13:06 Budgie 11 gearing up for first preview\n14:48 EU takes aim at infinite scrolling\n17:45 EU parliament blocks AI features\n19:52 AsteroidOS brings Linux to your smartwatch\n21:57 Project aims to bring NetBSD utilities to Linux\n23:41 Sponsor: Tuxedo Computers\n\n\nLinks:\nGNOME 50 got a massive beta\nhttps://9to5linux.com/gnome-50-desktop-environment-enters-public-beta-testing-with-more-new-features\n\nGNOME OS nearing stable release\nhttps://blogs.gnome.org/adrianvovk/2026/02/18/gnome-os-hackfest-fosdem-2026/\n\nPlasma 6.6 released\nhttps://kde.org/announcements/plasma/6/6.6.0/\n\nKDE debunks FUD around systemD\nhttps://www.reddit.com/r/kde/comments/1r68jmi/a_quick_antifud_faq_to_debunk_the_kde_is_forcing/\n\nBudgie 11 gearing up for first preview\nhttps://buddiesofbudgie.org/blog/chirp-5\n\nEU takes aim at infinite scrolling\nhttps://www.politico.eu/article/tiktok-meta-facebook-instagram-brussels-kill-infinite-scrolling/\n\nEU parliament blocks AI features\nhttps://www.politico.eu/article/eu-parliament-blocks-ai-features-over-cyber-privacy-fears/\n\nAsteroidOS brings Linux to your smartwatch\nhttps://itsfoss.com/news/asteroidos-2-release/\n\nProject aims to bring NetBSD utilities to Linux\nhttps://linuxiac.com/netbase-brings-netbsd-userland-utilities-to-linux/\n\n#linuxdesktop #linuxdistro #technews", "GNOME 50 and GNOME OS progress, KDE debunks systemD FUD - Linux weekly News", "IZStNPWpE_0", 1540, false, "https://www.youtube.com/watch?v=IZStNPWpE_0", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022100_GNOME 50 and GNOME OS progress, KDE debunks systemD FUD - Linux weekly News.mp4", false, 43, ~U[2026-02-21 09:44:06Z]] 05:31:12.977 [debug] QUERY OK source="sources" db=0.9ms idle=461.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:31:12.978 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.1ms idle=28.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] 05:31:12.981 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=28.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 [2319117] 05:31:12.981 [debug] Current batch of media processed. Will check again in 1000ms 05:31:13.243 [debug] Current batch of media processed. Will check again in 1000ms 05:31:13.983 [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 Nextcloud Hub 26 brings big updates\n03:26 Project aims to bring NetBSD utilities to Linux\n05:17 Study says AI at work brings no real benefits\n\nLinks:\n\nNextcloud Hub 26 brings big updates\nhttps://nextcloud.com/blog/nextcloud-hub26-winter/\n\nProject aims to bring NetBSD utilities to Linux\nhttps://linuxiac.com/netbase-brings-netbsd-userland-utilities-to-linux/\n\nStudy says AI at work brings no real benefits\nhttps://www.techradar.com/pro/is-ai-at-work-actually-helping-major-survey-claims-many-firms-see-no-obvious-benefit-despite-billions-in-investment", "duration" => 476, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022000_Daily Linux News - S03E35 - Big Nextcloud update, NetBSD tools for Linux.NA", "id" => "eZ9pQVgiRT4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=eZ9pQVgiRT4", "playlist_index" => 10, "timestamp" => 1771576909, "title" => "Daily Linux News - S03E35 - Big Nextcloud update, NetBSD tools for Linux", "upload_date" => "20260220"} 05:31:13.984 [debug] QUERY OK source="sources" db=0.8ms queue=0.2ms idle=1009.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] 05:31:13.986 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=1008.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:31:14.000 [debug] QUERY OK source="media_items" db=13.4ms queue=0.1ms idle=1008.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 08:41:49Z], 43] 05:31:14.005 [debug] QUERY OK source="media_items" db=3.3ms queue=0.1ms 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" ["👕 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 Nextcloud Hub 26 brings big updates\n03:26 Project aims to bring NetBSD utilities to Linux\n05:17 Study says AI at work brings no real benefits\n\nLinks:\n\nNextcloud Hub 26 brings big updates\nhttps://nextcloud.com/blog/nextcloud-hub26-winter/\n\nProject aims to bring NetBSD utilities to Linux\nhttps://linuxiac.com/netbase-brings-netbsd-userland-utilities-to-linux/\n\nStudy says AI at work brings no real benefits\nhttps://www.techradar.com/pro/is-ai-at-work-actually-helping-major-survey-claims-many-firms-see-no-obvious-benefit-despite-billions-in-investment", "Daily Linux News - S03E35 - Big Nextcloud update, NetBSD tools for Linux", "d981dd26-1095-431f-bebe-c29c62814f4c", "eZ9pQVgiRT4", 476, false, "https://www.youtube.com/watch?v=eZ9pQVgiRT4", 10, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022000_Daily Linux News - S03E35 - Big Nextcloud update, NetBSD tools for Linux.NA", false, false, false, 43, [], 98, ~U[2026-02-20 08:41:49Z], ~U[2026-03-01 11:31:14Z], ~U[2026-03-01 11:31:14Z], "👕 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 Nextcloud Hub 26 brings big updates\n03:26 Project aims to bring NetBSD utilities to Linux\n05:17 Study says AI at work brings no real benefits\n\nLinks:\n\nNextcloud Hub 26 brings big updates\nhttps://nextcloud.com/blog/nextcloud-hub26-winter/\n\nProject aims to bring NetBSD utilities to Linux\nhttps://linuxiac.com/netbase-brings-netbsd-userland-utilities-to-linux/\n\nStudy says AI at work brings no real benefits\nhttps://www.techradar.com/pro/is-ai-at-work-actually-helping-major-survey-claims-many-firms-see-no-obvious-benefit-despite-billions-in-investment", "Daily Linux News - S03E35 - Big Nextcloud update, NetBSD tools for Linux", "eZ9pQVgiRT4", 476, false, "https://www.youtube.com/watch?v=eZ9pQVgiRT4", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022000_Daily Linux News - S03E35 - Big Nextcloud update, NetBSD tools for Linux.NA", false, 43, ~U[2026-02-20 08:41:49Z]] 05:31:14.006 [debug] QUERY OK source="sources" db=0.6ms idle=770.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:31:14.008 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms idle=22.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] 05:31:14.010 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=22.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 [2311137] 05:31:14.010 [info] Kicking off download for media item #2311137 (eZ9pQVgiRT4) 05:31:14.017 [debug] Current batch of media processed. Will check again in 1000ms 05:31:14.244 [debug] Current batch of media processed. Will check again in 1000ms 05:31:15.018 [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\n\nTimestamps:\n00:00 Intro\n00:05 GNOME OS nearing stable release\n04:06 Godot getting swarmed by AI slop\n07:20 AsteroidOS brings Linux to your smartwatch\n\nLinks:\nGNOME OS nearing stable release\nhttps://blogs.gnome.org/adrianvovk/2026/02/18/gnome-os-hackfest-fosdem-2026/\n\nGodot getting swarmed by AI slop\nhttps://www.gamingonlinux.com/2026/02/godot-engine-suffering-from-lots-of-ai-slop-code-submissions/\n\nAsteroidOS brings Linux to your smartwatch\nhttps://itsfoss.com/news/asteroidos-2-release/", "duration" => 600, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021900_Daily Linux News - S03E34 - GNOME OS making progress, AI slop submissions, Linux on smartwatches.NA", "id" => "YkeNdTfnNko", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=YkeNdTfnNko", "playlist_index" => 11, "timestamp" => 1771496723, "title" => "Daily Linux News - S03E34 - GNOME OS making progress, AI slop submissions, Linux on smartwatches", "upload_date" => "20260219"} 05:31:15.019 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1012.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:31:15.020 [debug] QUERY OK source="sources" db=0.6ms queue=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" = ?) [43] 05:31:15.031 [debug] QUERY OK source="media_items" db=9.4ms queue=0.2ms idle=1011.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-19 10:25:23Z], 43] 05:31:15.035 [debug] QUERY OK source="media_items" db=3.0ms queue=0.1ms idle=1015.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\n\nTimestamps:\n00:00 Intro\n00:05 GNOME OS nearing stable release\n04:06 Godot getting swarmed by AI slop\n07:20 AsteroidOS brings Linux to your smartwatch\n\nLinks:\nGNOME OS nearing stable release\nhttps://blogs.gnome.org/adrianvovk/2026/02/18/gnome-os-hackfest-fosdem-2026/\n\nGodot getting swarmed by AI slop\nhttps://www.gamingonlinux.com/2026/02/godot-engine-suffering-from-lots-of-ai-slop-code-submissions/\n\nAsteroidOS brings Linux to your smartwatch\nhttps://itsfoss.com/news/asteroidos-2-release/", "Daily Linux News - S03E34 - GNOME OS making progress, AI slop submissions, Linux on smartwatches", "9df5da50-a3c8-4901-b6e3-e818e8e3837b", "YkeNdTfnNko", 600, false, "https://www.youtube.com/watch?v=YkeNdTfnNko", 11, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021900_Daily Linux News - S03E34 - GNOME OS making progress, AI slop submissions, Linux on smartwatches.NA", false, false, false, 43, [], 98, ~U[2026-02-19 10:25:23Z], ~U[2026-03-01 11:31:15Z], ~U[2026-03-01 11:31:15Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\n\nTimestamps:\n00:00 Intro\n00:05 GNOME OS nearing stable release\n04:06 Godot getting swarmed by AI slop\n07:20 AsteroidOS brings Linux to your smartwatch\n\nLinks:\nGNOME OS nearing stable release\nhttps://blogs.gnome.org/adrianvovk/2026/02/18/gnome-os-hackfest-fosdem-2026/\n\nGodot getting swarmed by AI slop\nhttps://www.gamingonlinux.com/2026/02/godot-engine-suffering-from-lots-of-ai-slop-code-submissions/\n\nAsteroidOS brings Linux to your smartwatch\nhttps://itsfoss.com/news/asteroidos-2-release/", "Daily Linux News - S03E34 - GNOME OS making progress, AI slop submissions, Linux on smartwatches", "YkeNdTfnNko", 600, false, "https://www.youtube.com/watch?v=YkeNdTfnNko", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021900_Daily Linux News - S03E34 - GNOME OS making progress, AI slop submissions, Linux on smartwatches.NA", false, 43, ~U[2026-02-19 10:25:23Z]] 05:31:15.037 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=798.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:31:15.038 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=18.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] 05:31:15.039 [debug] QUERY OK source="media_items" db=0.7ms idle=17.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 [2303789] 05:31:15.039 [info] Kicking off download for media item #2303789 (YkeNdTfnNko) 05:31:15.044 [debug] Current batch of media processed. Will check again in 1000ms 05:31:15.245 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how the Police in Columbine Valley Colorado wrongfully accused and tried to charge a woman of package theft because they had records of her driving her car near the street where the theft occurred and a suspect on a security camera that only vaguely resembled the innocent woman.\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" => 693, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e110200_When the Surveillance State Falsely Accuses You.mp4", "id" => "A9h2npIn8RQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=A9h2npIn8RQ", "playlist_index" => 18, "timestamp" => 1762118751, "title" => "When the Surveillance State Falsely Accuses You", "upload_date" => "20251102"} 05:31:15.246 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=209.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:31:15.248 [debug] QUERY OK source="sources" db=0.5ms queue=0.2ms idle=209.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:31:15.253 [debug] QUERY OK source="media_items" db=4.5ms queue=0.1ms idle=208.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-02 21:25:51Z], 45] 05:31:15.257 [debug] QUERY OK source="media_items" db=3.3ms idle=209.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 Police in Columbine Valley Colorado wrongfully accused and tried to charge a woman of package theft because they had records of her driving her car near the street where the theft occurred and a suspect on a security camera that only vaguely resembled the innocent woman.\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 Surveillance State Falsely Accuses You", "ac061030-e3a2-4fbe-bb06-539fba00eb3f", "A9h2npIn8RQ", 693, false, "https://www.youtube.com/watch?v=A9h2npIn8RQ", 18, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e110200_When the Surveillance State Falsely Accuses You.mp4", false, false, false, 45, [], 98, ~U[2025-11-02 21:25:51Z], ~U[2026-03-01 11:31:15Z], ~U[2026-03-01 11:31:15Z], "In this video I discuss how the Police in Columbine Valley Colorado wrongfully accused and tried to charge a woman of package theft because they had records of her driving her car near the street where the theft occurred and a suspect on a security camera that only vaguely resembled the innocent woman.\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 Surveillance State Falsely Accuses You", "A9h2npIn8RQ", 693, false, "https://www.youtube.com/watch?v=A9h2npIn8RQ", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e110200_When the Surveillance State Falsely Accuses You.mp4", false, 45, ~U[2025-11-02 21:25:51Z]] 05:31:15.259 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms 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] 05:31:15.260 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=12.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] 05:31:15.261 [debug] QUERY OK source="media_items" db=0.7ms idle=12.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 [1441936] 05:31:15.262 [debug] Current batch of media processed. Will check again in 1000ms 05:31:16.045 [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 Plasma 6.6 released\n03:53 Valve says parts shortages are the cause of Deck stock issues\n06:00 Study says people are ready to move away from big tech\n08:26 EU parliament blocks AI features\n11:54 Cosmic gets another update\n\nLinks:\n\nPlasma 6.6 released\nhttps://kde.org/announcements/plasma/6/6.6.0/\n\nValve says parts shortages are the cause of Deck stock issues\nhttps://www.techradar.com/gaming/steam-deck/valve-confirms-steam-deck-oled-stock-issues-are-due-to-memory-and-storage-shortages-heres-what-it-means-for-the-steam-machine\n\nStudy says people are ready to move away from big tech\nhttps://www.techradar.com/vpn/vpn-privacy-security/brits-are-turning-their-backs-on-us-big-tech-and-looking-to-europe-for-privacy\n\nEU parliament blocks AI features\nhttps://www.politico.eu/article/eu-parliament-blocks-ai-features-over-cyber-privacy-fears/\n\nCosmic gets another update\nhttps://github.com/pop-os/cosmic-epoch/releases/tag/epoch-1.0.7", "duration" => 810, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021800_Daily Linux News - S03E33 - Plasma 6.6, Cosmic update, EU parliament drops AI.NA", "id" => "ZljDp4U9f_s", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ZljDp4U9f_s", "playlist_index" => 12, "timestamp" => 1771408480, "title" => "Daily Linux News - S03E33 - Plasma 6.6, Cosmic update, EU parliament drops AI", "upload_date" => "20260218"} 05:31:16.047 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=793.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:31:16.048 [debug] QUERY OK source="sources" db=0.5ms queue=0.2ms idle=790.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:31:16.059 [debug] QUERY OK source="media_items" db=9.8ms queue=0.1ms idle=789.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-18 09:54:40Z], 43] 05:31:16.063 [debug] QUERY OK source="media_items" db=3.3ms queue=0.1ms idle=799.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 Plasma 6.6 released\n03:53 Valve says parts shortages are the cause of Deck stock issues\n06:00 Study says people are ready to move away from big tech\n08:26 EU parliament blocks AI features\n11:54 Cosmic gets another update\n\nLinks:\n\nPlasma 6.6 released\nhttps://kde.org/announcements/plasma/6/6.6.0/\n\nValve says parts shortages are the cause of Deck stock issues\nhttps://www.techradar.com/gaming/steam-deck/valve-confirms-steam-deck-oled-stock-issues-are-due-to-memory-and-storage-shortages-heres-what-it-means-for-the-steam-machine\n\nStudy says people are ready to move away from big tech\nhttps://www.techradar.com/vpn/vpn-privacy-security/brits-are-turning-their-backs-on-us-big-tech-and-looking-to-europe-for-privacy\n\nEU parliament blocks AI features\nhttps://www.politico.eu/article/eu-parliament-blocks-ai-features-over-cyber-privacy-fears/\n\nCosmic gets another update\nhttps://github.com/pop-os/cosmic-epoch/releases/tag/epoch-1.0.7", "Daily Linux News - S03E33 - Plasma 6.6, Cosmic update, EU parliament drops AI", "af73cf22-1f27-4274-b39c-6c3d1f605f76", "ZljDp4U9f_s", 810, false, "https://www.youtube.com/watch?v=ZljDp4U9f_s", 12, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021800_Daily Linux News - S03E33 - Plasma 6.6, Cosmic update, EU parliament drops AI.NA", false, false, false, 43, [], 98, ~U[2026-02-18 09:54:40Z], ~U[2026-03-01 11:31:16Z], ~U[2026-03-01 11:31:16Z], "👕 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 Plasma 6.6 released\n03:53 Valve says parts shortages are the cause of Deck stock issues\n06:00 Study says people are ready to move away from big tech\n08:26 EU parliament blocks AI features\n11:54 Cosmic gets another update\n\nLinks:\n\nPlasma 6.6 released\nhttps://kde.org/announcements/plasma/6/6.6.0/\n\nValve says parts shortages are the cause of Deck stock issues\nhttps://www.techradar.com/gaming/steam-deck/valve-confirms-steam-deck-oled-stock-issues-are-due-to-memory-and-storage-shortages-heres-what-it-means-for-the-steam-machine\n\nStudy says people are ready to move away from big tech\nhttps://www.techradar.com/vpn/vpn-privacy-security/brits-are-turning-their-backs-on-us-big-tech-and-looking-to-europe-for-privacy\n\nEU parliament blocks AI features\nhttps://www.politico.eu/article/eu-parliament-blocks-ai-features-over-cyber-privacy-fears/\n\nCosmic gets another update\nhttps://github.com/pop-os/cosmic-epoch/releases/tag/epoch-1.0.7", "Daily Linux News - S03E33 - Plasma 6.6, Cosmic update, EU parliament drops AI", "ZljDp4U9f_s", 810, false, "https://www.youtube.com/watch?v=ZljDp4U9f_s", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021800_Daily Linux News - S03E33 - Plasma 6.6, Cosmic update, EU parliament drops AI.NA", false, 43, ~U[2026-02-18 09:54:40Z]] 05:31:16.064 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=802.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:31:16.065 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=17.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] 05:31:16.067 [debug] QUERY OK source="media_items" db=0.8ms idle=17.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 [2295889] 05:31:16.067 [info] Kicking off download for media item #2295889 (ZljDp4U9f_s) 05:31:16.072 [debug] Current batch of media processed. Will check again in 1000ms 05:31:16.262 [debug] Current batch of media processed. Will check again in 1000ms 05:31:17.073 [debug] Current batch of media processed. Will check again in 1000ms 05:31:17.263 [debug] Current batch of media processed. Will check again in 1000ms 05:31:18.074 [debug] Current batch of media processed. Will check again in 1000ms 05:31:18.264 [debug] Current batch of media processed. Will check again in 1000ms 05:31:19.075 [debug] Current batch of media processed. Will check again in 1000ms 05:31:19.265 [debug] Current batch of media processed. Will check again in 1000ms 05:31:20.076 [debug] Current batch of media processed. Will check again in 1000ms 05:31:20.266 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how Ubuntu's decision to use core utilities written in Rust (uutils) is causing various issues in the distro that could take a long time to completely fix and will likely lead to random bugs like the issue with automatic updates for a while to come.\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" => 566, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e103100_Rust Core Utils Are Breaking Ubuntu.mp4", "id" => "5NeRkZ1A4zY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5NeRkZ1A4zY", "playlist_index" => 19, "timestamp" => 1761944297, "title" => "Rust Core Utils Are Breaking Ubuntu", "upload_date" => "20251031"} 05:31:20.267 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=752.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:31:20.268 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=753.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] 05:31:20.273 [debug] QUERY OK source="media_items" db=4.3ms queue=0.1ms idle=754.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-31 20:58:17Z], 45] 05:31:20.278 [debug] QUERY OK source="media_items" db=3.2ms queue=0.1ms idle=759.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 Ubuntu's decision to use core utilities written in Rust (uutils) is causing various issues in the distro that could take a long time to completely fix and will likely lead to random bugs like the issue with automatic updates for a while to come.\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", "Rust Core Utils Are Breaking Ubuntu", "012a3975-7dfc-4652-b5a1-17d5da6af807", "5NeRkZ1A4zY", 566, false, "https://www.youtube.com/watch?v=5NeRkZ1A4zY", 19, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e103100_Rust Core Utils Are Breaking Ubuntu.mp4", false, false, false, 45, [], 98, ~U[2025-10-31 20:58:17Z], ~U[2026-03-01 11:31:20Z], ~U[2026-03-01 11:31:20Z], "In this video I discuss how Ubuntu's decision to use core utilities written in Rust (uutils) is causing various issues in the distro that could take a long time to completely fix and will likely lead to random bugs like the issue with automatic updates for a while to come.\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", "Rust Core Utils Are Breaking Ubuntu", "5NeRkZ1A4zY", 566, false, "https://www.youtube.com/watch?v=5NeRkZ1A4zY", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e103100_Rust Core Utils Are Breaking Ubuntu.mp4", false, 45, ~U[2025-10-31 20:58:17Z]] 05:31:20.279 [debug] QUERY OK source="sources" db=0.6ms queue=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" = ?) [45] 05:31:20.280 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=12.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] 05:31:20.282 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=12.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 [1426243] 05:31:20.282 [debug] Current batch of media processed. Will check again in 1000ms 05:31:21.077 [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:29 Sponsor: Proton Mail\n01:33 Plasma Login Manager\n03:13 Desktop: Look & Feel\n06:48 Under The Hood\n08:36 Window Manager & Wayland\n10:25 Widgets & other desktop changes\n14:15 System Monitor\n15:21 Spectacle\n16:17 Discover\n17:28 Settings\n20:23 Sponsor: Tuxedo Computers\n\n\n\n#linuxdesktop #linuxdistro #kdeplasma", "duration" => 1310, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021700_KDE Plasma 6.6: a massive update !.mp4", "id" => "F0LgY39WTGQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=F0LgY39WTGQ", "playlist_index" => 13, "timestamp" => 1771333048, "title" => "KDE Plasma 6.6: a massive update !", "upload_date" => "20260217"} 05:31:21.079 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=804.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:31:21.080 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=802.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:31:21.090 [debug] QUERY OK source="media_items" db=9.3ms idle=801.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-17 12:57:28Z], 43] 05:31:21.094 [debug] QUERY OK source="media_items" db=2.9ms idle=810.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 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:29 Sponsor: Proton Mail\n01:33 Plasma Login Manager\n03:13 Desktop: Look & Feel\n06:48 Under The Hood\n08:36 Window Manager & Wayland\n10:25 Widgets & other desktop changes\n14:15 System Monitor\n15:21 Spectacle\n16:17 Discover\n17:28 Settings\n20:23 Sponsor: Tuxedo Computers\n\n\n\n#linuxdesktop #linuxdistro #kdeplasma", "KDE Plasma 6.6: a massive update !", "a6d40e6d-464f-48ae-9ec6-7fca7f620bd4", "F0LgY39WTGQ", 1310, false, "https://www.youtube.com/watch?v=F0LgY39WTGQ", 13, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021700_KDE Plasma 6.6: a massive update !.mp4", false, false, false, 43, [], 97, ~U[2026-02-17 12:57:28Z], ~U[2026-03-01 11:31:21Z], ~U[2026-03-01 11:31:21Z], "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:29 Sponsor: Proton Mail\n01:33 Plasma Login Manager\n03:13 Desktop: Look & Feel\n06:48 Under The Hood\n08:36 Window Manager & Wayland\n10:25 Widgets & other desktop changes\n14:15 System Monitor\n15:21 Spectacle\n16:17 Discover\n17:28 Settings\n20:23 Sponsor: Tuxedo Computers\n\n\n\n#linuxdesktop #linuxdistro #kdeplasma", "KDE Plasma 6.6: a massive update !", "F0LgY39WTGQ", 1310, false, "https://www.youtube.com/watch?v=F0LgY39WTGQ", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021700_KDE Plasma 6.6: a massive update !.mp4", false, 43, ~U[2026-02-17 12:57:28Z]] 05:31:21.095 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=812.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:31:21.096 [debug] QUERY OK source="media_profiles" db=0.4ms idle=15.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] 05:31:21.097 [debug] QUERY OK source="media_items" db=0.6ms idle=15.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 [2289161] 05:31:21.097 [debug] Current batch of media processed. Will check again in 1000ms 05:31:21.283 [debug] Current batch of media processed. Will check again in 1000ms 05:31:22.099 [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 KDE debunks FUD around systemD\n04:06 Budgie 11 gearing up for first preview\n06:19 Microsoft starts Trusted Tech Alliance\n\n\nLinks:\nKDE debunks FUD around systemD\nhttps://www.reddit.com/r/kde/comments/1r68jmi/a_quick_antifud_faq_to_debunk_the_kde_is_forcing/\n\nBudgie 11 gearing up for first preview\nhttps://buddiesofbudgie.org/blog/chirp-5\n\nMicrosoft starts Trusted Tech Alliance\nhttps://www.techradar.com/pro/microsoft-launches-trusted-tech-alliance-to-try-and-restore-some-faith-in-big-tech", "duration" => 534, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021700_Daily Linux News - S03E32 - Plasma debunks systemD FUD, Microsoft launches Trusted Tech Alliance.NA", "id" => "ia1poo4kgjY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ia1poo4kgjY", "playlist_index" => 14, "timestamp" => 1771317512, "title" => "Daily Linux News - S03E32 - Plasma debunks systemD FUD, Microsoft launches Trusted Tech Alliance", "upload_date" => "20260217"} 05:31:22.100 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1005.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:31:22.101 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1005.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:31:22.114 [debug] QUERY OK source="media_items" db=12.4ms queue=0.1ms idle=1005.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-17 08:38:32Z], 43] 05:31:22.119 [debug] QUERY OK source="media_items" db=3.3ms queue=0.1ms idle=1018.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 KDE debunks FUD around systemD\n04:06 Budgie 11 gearing up for first preview\n06:19 Microsoft starts Trusted Tech Alliance\n\n\nLinks:\nKDE debunks FUD around systemD\nhttps://www.reddit.com/r/kde/comments/1r68jmi/a_quick_antifud_faq_to_debunk_the_kde_is_forcing/\n\nBudgie 11 gearing up for first preview\nhttps://buddiesofbudgie.org/blog/chirp-5\n\nMicrosoft starts Trusted Tech Alliance\nhttps://www.techradar.com/pro/microsoft-launches-trusted-tech-alliance-to-try-and-restore-some-faith-in-big-tech", "Daily Linux News - S03E32 - Plasma debunks systemD FUD, Microsoft launches Trusted Tech Alliance", "329cdced-315d-421d-8a30-c32424d422d1", "ia1poo4kgjY", 534, false, "https://www.youtube.com/watch?v=ia1poo4kgjY", 14, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021700_Daily Linux News - S03E32 - Plasma debunks systemD FUD, Microsoft launches Trusted Tech Alliance.NA", false, false, false, 43, [], 97, ~U[2026-02-17 08:38:32Z], ~U[2026-03-01 11:31:22Z], ~U[2026-03-01 11:31: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 KDE debunks FUD around systemD\n04:06 Budgie 11 gearing up for first preview\n06:19 Microsoft starts Trusted Tech Alliance\n\n\nLinks:\nKDE debunks FUD around systemD\nhttps://www.reddit.com/r/kde/comments/1r68jmi/a_quick_antifud_faq_to_debunk_the_kde_is_forcing/\n\nBudgie 11 gearing up for first preview\nhttps://buddiesofbudgie.org/blog/chirp-5\n\nMicrosoft starts Trusted Tech Alliance\nhttps://www.techradar.com/pro/microsoft-launches-trusted-tech-alliance-to-try-and-restore-some-faith-in-big-tech", "Daily Linux News - S03E32 - Plasma debunks systemD FUD, Microsoft launches Trusted Tech Alliance", "ia1poo4kgjY", 534, false, "https://www.youtube.com/watch?v=ia1poo4kgjY", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021700_Daily Linux News - S03E32 - Plasma debunks systemD FUD, Microsoft launches Trusted Tech Alliance.NA", false, 43, ~U[2026-02-17 08:38:32Z]] 05:31:22.121 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=863.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:31:22.122 [debug] QUERY OK source="media_profiles" db=0.7ms idle=21.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] 05:31:22.123 [debug] QUERY OK source="media_items" db=0.8ms idle=21.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 [2287714] 05:31:22.124 [info] Kicking off download for media item #2287714 (ia1poo4kgjY) 05:31:22.128 [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 Murena Maps, new private maps for Android \n03:06 GNOME 50 got a massive beta\n06:57 EU takes aim at infinite scrolling\n\n\nLinks:\n\nMurena Maps, new private maps for Android \nhttps://murena.com/meet-murena-maps/\n\nGNOME 50 got a massive beta\nhttps://9to5linux.com/gnome-50-desktop-environment-enters-public-beta-testing-with-more-new-features\n\nEU takes aim at infinite scrolling\nhttps://www.politico.eu/article/tiktok-meta-facebook-instagram-brussels-kill-infinite-scrolling/", "duration" => 754, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021600_Daily Linux News - S03E31 - EU takes aim at infinite scroll, GNOME 50 beta.NA", "id" => "RzBuqvd_zD4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=RzBuqvd_zD4", "playlist_index" => 15, "timestamp" => 1771238192, "title" => "Daily Linux News - S03E31 - EU takes aim at infinite scroll, GNOME 50 beta", "upload_date" => "20260216"} 05:31:22.129 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=10.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:31:22.131 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=9.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] 05:31:22.146 [debug] QUERY OK source="media_items" db=14.9ms idle=9.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-16 10:36:32Z], 43] 05:31:22.153 [debug] QUERY OK source="media_items" db=4.8ms queue=0.1ms idle=23.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 Murena Maps, new private maps for Android \n03:06 GNOME 50 got a massive beta\n06:57 EU takes aim at infinite scrolling\n\n\nLinks:\n\nMurena Maps, new private maps for Android \nhttps://murena.com/meet-murena-maps/\n\nGNOME 50 got a massive beta\nhttps://9to5linux.com/gnome-50-desktop-environment-enters-public-beta-testing-with-more-new-features\n\nEU takes aim at infinite scrolling\nhttps://www.politico.eu/article/tiktok-meta-facebook-instagram-brussels-kill-infinite-scrolling/", "Daily Linux News - S03E31 - EU takes aim at infinite scroll, GNOME 50 beta", "8b31a0f2-6cd0-492d-93e6-3da1b8e71a06", "RzBuqvd_zD4", 754, false, "https://www.youtube.com/watch?v=RzBuqvd_zD4", 15, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021600_Daily Linux News - S03E31 - EU takes aim at infinite scroll, GNOME 50 beta.NA", false, false, false, 43, [], 97, ~U[2026-02-16 10:36:32Z], ~U[2026-03-01 11:31:22Z], ~U[2026-03-01 11:31: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 Murena Maps, new private maps for Android \n03:06 GNOME 50 got a massive beta\n06:57 EU takes aim at infinite scrolling\n\n\nLinks:\n\nMurena Maps, new private maps for Android \nhttps://murena.com/meet-murena-maps/\n\nGNOME 50 got a massive beta\nhttps://9to5linux.com/gnome-50-desktop-environment-enters-public-beta-testing-with-more-new-features\n\nEU takes aim at infinite scrolling\nhttps://www.politico.eu/article/tiktok-meta-facebook-instagram-brussels-kill-infinite-scrolling/", "Daily Linux News - S03E31 - EU takes aim at infinite scroll, GNOME 50 beta", "RzBuqvd_zD4", 754, false, "https://www.youtube.com/watch?v=RzBuqvd_zD4", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021600_Daily Linux News - S03E31 - EU takes aim at infinite scroll, GNOME 50 beta.NA", false, 43, ~U[2026-02-16 10:36:32Z]] 05:31:22.154 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms idle=25.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:31:22.156 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.2ms idle=25.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] 05:31:22.158 [debug] QUERY OK source="media_items" db=1.1ms idle=26.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 [2281148] 05:31:22.158 [info] Kicking off download for media item #2281148 (RzBuqvd_zD4) 05:31:22.170 [debug] QUERY OK source="tasks" db=1.5ms idle=14.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189113, 2281148, ~U[2026-03-01 11:31:22Z], ~U[2026-03-01 11:31:22Z]] 05:31:22.171 [debug] Current batch of media processed. Will check again in 1000ms 05:31:22.178 [info] {"args":{"id":2281148},"id":189113,"meta":{},"system_time":1772364682177961521,"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"]} 05:31:22.180 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=20.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" = ?) [2281148] 05:31:22.181 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:31:22.183 [debug] QUERY OK source="sources" db=1.3ms queue=0.4ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 05:31:22.184 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.1ms idle=15.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:31:22.187 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms 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 [2281148] 05:31:22.190 [debug] QUERY OK source="media_metadata" db=0.3ms idle=11.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" = ?) [2281148] 05:31:22.191 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=10.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] 05:31:22.193 [debug] QUERY OK source="settings" db=0.3ms queue=0.3ms 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 [] 05:31:22.193 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms 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 [] 05:31:22.195 [debug] Running yt-dlp command for action: get_downloadable_status 05:31:22.197 [debug] QUERY OK source="settings" db=0.3ms idle=9.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:31:22.198 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms 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 [] 05:31:22.198 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms 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 [] 05:31:22.199 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RzBuqvd_zD4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/6d/72/6d729ea5aefefe1963c33b34df38f90bd61d94eb8d93fb4010b1c8c56b21f2eb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:31:22.284 [debug] Current batch of media processed. Will check again in 1000ms 05:31:23.173 [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:41 Probably fixing my NVMe drive issue\n03:32 Using my Synology NAS a bit more\n15:06 A few other personal things", "duration" => 1358, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021600_Patroncast S06E07 - Using the NAS for collaborative work & other unrelated things.NA", "id" => "ld6S5z9Xbyw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ld6S5z9Xbyw", "playlist_index" => 16, "timestamp" => 1771230317, "title" => "Patroncast S06E07 - Using the NAS for collaborative work & other unrelated things", "upload_date" => "20260216"} 05:31:23.174 [debug] QUERY OK source="sources" db=0.4ms idle=980.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:31:23.175 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=977.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] 05:31:23.186 [debug] QUERY OK source="media_items" db=10.1ms idle=977.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-16 08:25:17Z], 43] 05:31:23.189 [debug] QUERY OK source="media_items" db=2.6ms idle=988.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:41 Probably fixing my NVMe drive issue\n03:32 Using my Synology NAS a bit more\n15:06 A few other personal things", "Patroncast S06E07 - Using the NAS for collaborative work & other unrelated things", "8ed22b10-9296-4282-8631-457cb446b4d3", "ld6S5z9Xbyw", 1358, false, "https://www.youtube.com/watch?v=ld6S5z9Xbyw", 16, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021600_Patroncast S06E07 - Using the NAS for collaborative work & other unrelated things.NA", false, false, false, 43, [], 97, ~U[2026-02-16 08:25:17Z], ~U[2026-03-01 11:31:23Z], ~U[2026-03-01 11:31: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:41 Probably fixing my NVMe drive issue\n03:32 Using my Synology NAS a bit more\n15:06 A few other personal things", "Patroncast S06E07 - Using the NAS for collaborative work & other unrelated things", "ld6S5z9Xbyw", 1358, false, "https://www.youtube.com/watch?v=ld6S5z9Xbyw", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021600_Patroncast S06E07 - Using the NAS for collaborative work & other unrelated things.NA", false, 43, ~U[2026-02-16 08:25:17Z]] 05:31:23.190 [debug] QUERY OK source="sources" db=0.6ms idle=930.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:31:23.191 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=16.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] 05:31:23.193 [debug] QUERY OK source="media_items" db=0.7ms idle=16.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 [2279799] 05:31:23.193 [info] Kicking off download for media item #2279799 (ld6S5z9Xbyw) 05:31:23.196 [debug] Current batch of media processed. Will check again in 1000ms 05:31:23.285 [debug] Current batch of media processed. Will check again in 1000ms 05:31:24.197 [debug] Current batch of media processed. Will check again in 1000ms 05:31:24.286 [debug] Current batch of media processed. Will check again in 1000ms 05:31:25.198 [debug] Current batch of media processed. Will check again in 1000ms 05:31:25.288 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how different Linux distributions are facing attacks which could be a result of the increased popularity of Linux, hackers are taking advantage of Linux newcomers with the death of windows 10, and information security is more important than ever in the Linux 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" => 545, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e102300_Desktop Linux is Under Attack.mp4", "id" => "D_z_w0m4A3E", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=D_z_w0m4A3E", "playlist_index" => 20, "timestamp" => 1761177602, "title" => "Desktop Linux is Under Attack", "upload_date" => "20251023"} 05:31:25.290 [debug] QUERY OK source="sources" db=1.2ms queue=0.2ms idle=774.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:31:25.293 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms idle=776.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] 05:31:25.302 [debug] QUERY OK source="media_items" db=8.9ms queue=0.2ms idle=778.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-23 00:00:02Z], 45] 05:31:25.311 [debug] QUERY OK source="media_items" db=5.5ms queue=0.1ms idle=789.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 different Linux distributions are facing attacks which could be a result of the increased popularity of Linux, hackers are taking advantage of Linux newcomers with the death of windows 10, and information security is more important than ever in the Linux 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", "Desktop Linux is Under Attack", "7cd4bd23-d4a6-43bf-93f3-31184fe89482", "D_z_w0m4A3E", 545, false, "https://www.youtube.com/watch?v=D_z_w0m4A3E", 20, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e102300_Desktop Linux is Under Attack.mp4", false, false, false, 45, [], 98, ~U[2025-10-23 00:00:02Z], ~U[2026-03-01 11:31:25Z], ~U[2026-03-01 11:31:25Z], "In this video I discuss how different Linux distributions are facing attacks which could be a result of the increased popularity of Linux, hackers are taking advantage of Linux newcomers with the death of windows 10, and information security is more important than ever in the Linux 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", "Desktop Linux is Under Attack", "D_z_w0m4A3E", 545, false, "https://www.youtube.com/watch?v=D_z_w0m4A3E", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e102300_Desktop Linux is Under Attack.mp4", false, 45, ~U[2025-10-23 00:00:02Z]] 05:31:25.313 [debug] QUERY OK source="sources" db=1.2ms queue=0.2ms idle=42.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:31:25.315 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.3ms idle=23.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] 05:31:25.318 [debug] QUERY OK source="media_items" db=1.3ms queue=0.2ms idle=23.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 [1357518] 05:31:25.319 [debug] Current batch of media processed. Will check again in 1000ms 05:31:25.407 [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/cf/5f/cf5faa042e591c9508cd345ef3324479a347cc05cb43d1c089c968a51f506aba.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/c0/65/c065f81459ea2b0a655dac7d88444cc2e6c24d801910ac400607720b30449823.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 05:31:25.414 [debug] Gracefully stopping file follower 05:31:25.420 [debug] QUERY OK source="sources" db=4.6ms queue=0.6ms idle=112.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:31:25.422 [debug] QUERY OK source="sources" db=1.4ms queue=0.2ms idle=111.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] 05:31:25.436 [debug] QUERY OK source="media_items" db=11.9ms queue=0.4ms idle=110.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-27 00:07:42Z], 45] 05:31:25.460 [debug] QUERY OK source="media_items" db=21.1ms queue=0.2ms idle=122.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 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", "a8983d06-9c26-4704-9ee0-b126f8d9c775", "GSRXY3_yeN4", 523, false, "https://www.youtube.com/watch?v=GSRXY3_yeN4", 1, "/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-03-01 11:31:25Z], ~U[2026-03-01 11:31: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]] 05:31:25.464 [debug] QUERY OK source="sources" db=1.4ms queue=0.2ms idle=143.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:31:25.473 [debug] QUERY OK source="media_items" db=8.4ms queue=0.3ms idle=44.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-24 22:18:31Z], 45] 05:31:25.485 [debug] QUERY OK source="media_items" db=8.7ms queue=0.1ms idle=52.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 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", "2455ed14-90c4-4ffa-a7f0-1e0d918ca74d", "eRyOdsLaPKE", 511, false, "https://www.youtube.com/watch?v=eRyOdsLaPKE", 2, "/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-03-01 11:31:25Z], ~U[2026-03-01 11:31: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]] 05:31:25.488 [debug] QUERY OK source="sources" db=1.9ms queue=0.2ms idle=49.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 05:31:25.498 [debug] QUERY OK source="media_items" db=9.1ms queue=0.2ms idle=29.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] 05:31:25.507 [debug] QUERY OK source="media_items" db=6.4ms queue=0.1ms idle=36.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 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", "d43e341a-2416-4fba-8d8f-21ca2e7fdb2b", "uBibexTkY-M", 504, false, "https://www.youtube.com/watch?v=uBibexTkY-M", 3, "/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-03-01 11:31:25Z], ~U[2026-03-01 11:31: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]] 05:31:25.511 [debug] QUERY OK source="sources" db=2.1ms queue=0.3ms idle=34.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] 05:31:25.520 [debug] QUERY OK source="media_items" db=8.6ms queue=0.2ms idle=28.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-14 22:33:31Z], 45] 05:31:25.533 [debug] QUERY OK source="media_items" db=9.0ms queue=0.4ms idle=34.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 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", "4ce7bf75-1bad-4ded-a95c-f11eea78a9c6", "MGisfDrdbGo", 501, false, "https://www.youtube.com/watch?v=MGisfDrdbGo", 4, "/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-03-01 11:31:25Z], ~U[2026-03-01 11:31: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]] 05:31:25.538 [debug] QUERY OK source="sources" db=2.6ms queue=0.6ms 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" = ?) [45] 05:31:25.554 [debug] QUERY OK source="media_items" db=14.7ms queue=0.3ms idle=32.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] 05:31:25.567 [debug] QUERY OK source="media_items" db=9.4ms queue=0.3ms idle=45.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", "f9858a58-1482-4274-946b-83292bead1bc", "I2qjQawDqXs", 540, false, "https://www.youtube.com/watch?v=I2qjQawDqXs", 5, "/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-03-01 11:31:25Z], ~U[2026-03-01 11:31: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]] 05:31:25.571 [debug] QUERY OK source="sources" db=2.1ms queue=0.3ms 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] 05:31:25.586 [debug] QUERY OK source="media_items" db=12.8ms queue=0.3ms idle=40.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-24 01:06:39Z], 45] 05:31:25.597 [debug] QUERY OK source="media_items" db=8.0ms queue=0.2ms idle=50.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 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", "00b6155a-0f95-41ad-934d-c097233cad26", "aaTvRDsdy0s", 915, false, "https://www.youtube.com/watch?v=aaTvRDsdy0s", 6, "/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-03-01 11:31:25Z], ~U[2026-03-01 11:31: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]] 05:31:25.601 [debug] QUERY OK source="sources" db=2.4ms queue=0.3ms idle=44.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:31:25.613 [debug] QUERY OK source="media_items" db=11.2ms queue=0.3ms idle=35.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] 05:31:25.624 [debug] QUERY OK source="media_items" db=7.9ms queue=0.1ms idle=43.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", "33aa81ec-00c4-4425-a149-4829d9a488e4", "FyejToP1cjA", 659, false, "https://www.youtube.com/watch?v=FyejToP1cjA", 7, "/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-03-01 11:31:25Z], ~U[2026-03-01 11:31: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]] 05:31:25.628 [debug] QUERY OK source="sources" db=2.3ms queue=0.4ms idle=39.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:31:25.640 [debug] QUERY OK source="media_items" db=10.4ms queue=0.2ms idle=32.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] 05:31:25.651 [debug] QUERY OK source="media_items" db=8.3ms queue=0.2ms 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" ["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", "ab7f322a-cbe0-4df5-b02b-b3298016670b", "BgeLeT4CoyY", 651, false, "https://www.youtube.com/watch?v=BgeLeT4CoyY", 8, "/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-03-01 11:31:25Z], ~U[2026-03-01 11:31: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]] 05:31:25.654 [debug] QUERY OK source="sources" db=2.3ms queue=0.2ms idle=38.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] 05:31:25.666 [debug] QUERY OK source="media_items" db=10.1ms queue=0.4ms idle=32.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] 05:31:25.678 [debug] QUERY OK source="media_items" db=8.8ms queue=0.2ms idle=39.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 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", "79fb61b6-d5b5-42d7-9f05-85565854a994", "6GNqGZXHXpo", 764, false, "https://www.youtube.com/watch?v=6GNqGZXHXpo", 9, "/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-03-01 11:31:25Z], ~U[2026-03-01 11:31: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]] 05:31:25.682 [debug] QUERY OK source="sources" db=2.1ms queue=0.6ms idle=39.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] 05:31:25.693 [debug] QUERY OK source="media_items" db=8.8ms queue=0.3ms idle=33.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-16 22:47:57Z], 45] 05:31:25.702 [debug] QUERY OK source="media_items" db=6.2ms queue=0.2ms idle=39.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 daily driving Linux and Linux gaming is becoming easier through all in one distros like Bazzite and helper software like iDescriptor to make things like using an iPhone with Linux easier.\n\nhttps://github.com/iDescriptor/iDescriptor\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", "Desktop Linux Just Keeps Winning", "1cf016d4-7258-4f34-80ca-bfe05ebdb4ed", "ETI5g-dTB7Y", 639, false, "https://www.youtube.com/watch?v=ETI5g-dTB7Y", 10, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e121600_Desktop Linux Just Keeps Winning.mp4", false, false, false, 45, [], 98, ~U[2025-12-16 22:47:57Z], ~U[2026-03-01 11:31:25Z], ~U[2026-03-01 11:31:25Z], "In this video I discuss how daily driving Linux and Linux gaming is becoming easier through all in one distros like Bazzite and helper software like iDescriptor to make things like using an iPhone with Linux easier.\n\nhttps://github.com/iDescriptor/iDescriptor\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", "Desktop Linux Just Keeps Winning", "ETI5g-dTB7Y", 639, false, "https://www.youtube.com/watch?v=ETI5g-dTB7Y", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e121600_Desktop Linux Just Keeps Winning.mp4", false, 45, ~U[2025-12-16 22:47:57Z]] 05:31:25.705 [debug] QUERY OK source="sources" db=1.8ms queue=0.3ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 05:31:25.715 [debug] QUERY OK source="media_items" db=8.4ms queue=0.4ms idle=29.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-07 15:25:44Z], 45] 05:31:25.724 [debug] QUERY OK source="media_items" db=6.3ms queue=0.2ms idle=34.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 Jolla Phone, a Linux smartphone with modern design and specifications, pre-order the Jolla phone using the link below.\n\nhttps://commerce.jolla.com/products/jolla-phone-preorder\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", "Jolla Phone - A Modern Linux Smart Phone", "eb963050-d8d2-46ff-bff1-e9bacfd36c7f", "0TLYLvGZUmA", 853, false, "https://www.youtube.com/watch?v=0TLYLvGZUmA", 11, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e120700_Jolla Phone - A Modern Linux Smart Phone.mp4", false, false, false, 45, [], 98, ~U[2025-12-07 15:25:44Z], ~U[2026-03-01 11:31:25Z], ~U[2026-03-01 11:31:25Z], "In this video I discuss the Jolla Phone, a Linux smartphone with modern design and specifications, pre-order the Jolla phone using the link below.\n\nhttps://commerce.jolla.com/products/jolla-phone-preorder\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", "Jolla Phone - A Modern Linux Smart Phone", "0TLYLvGZUmA", 853, false, "https://www.youtube.com/watch?v=0TLYLvGZUmA", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e120700_Jolla Phone - A Modern Linux Smart Phone.mp4", false, 45, ~U[2025-12-07 15:25:44Z]] 05:31:25.728 [debug] QUERY OK source="sources" db=2.3ms queue=0.6ms idle=32.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:31:25.739 [debug] QUERY OK source="media_items" db=9.6ms queue=0.3ms idle=28.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 15:22:07Z], 45] 05:31:25.750 [debug] QUERY OK source="media_items" db=7.7ms queue=0.1ms idle=35.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 go over shell tricks to manage your files more effectively on Linux.\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", "Linux Shell Tricks For Managing Files", "be48deca-bc9e-4f43-b516-6a2b134140bd", "W6CVxpMBmOo", 949, false, "https://www.youtube.com/watch?v=W6CVxpMBmOo", 12, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e120400_Linux Shell Tricks For Managing Files.mp4", false, false, false, 45, [], 98, ~U[2025-12-04 15:22:07Z], ~U[2026-03-01 11:31:25Z], ~U[2026-03-01 11:31:25Z], "In this video I go over shell tricks to manage your files more effectively on Linux.\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", "Linux Shell Tricks For Managing Files", "W6CVxpMBmOo", 949, false, "https://www.youtube.com/watch?v=W6CVxpMBmOo", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e120400_Linux Shell Tricks For Managing Files.mp4", false, 45, ~U[2025-12-04 15:22:07Z]] 05:31:25.753 [debug] QUERY OK source="sources" db=1.7ms queue=0.4ms idle=36.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:31:25.765 [debug] QUERY OK source="media_items" db=11.2ms queue=0.1ms idle=30.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-27 15:20:25Z], 45] 05:31:25.825 [debug] QUERY OK source="media_items" db=55.4ms queue=0.3ms idle=38.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 how Linux is becoming the best OS for gaming and productivity, not just as a result of open source developer efforts, but Microsoft compromising their own OS and turning it into a \"Canvas for AI\". Zorin OS 18 provides a stable environment for users and makes the transition from Windows easier, while bazzite provides an optimized linux environment for gamers.\nhttps://zorin.com/os/\nhttps://bazzite.gg/\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 Best Desktop Linux For Windows Users", "7a66bedd-6734-4484-b9ab-7811193ebac3", "3MwJbRq3-rM", 525, false, "https://www.youtube.com/watch?v=3MwJbRq3-rM", 13, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e112700_The Best Desktop Linux For Windows Users.mp4", false, false, false, 45, [], 98, ~U[2025-11-27 15:20:25Z], ~U[2026-03-01 11:31:25Z], ~U[2026-03-01 11:31:25Z], "In this video I discuss how Linux is becoming the best OS for gaming and productivity, not just as a result of open source developer efforts, but Microsoft compromising their own OS and turning it into a \"Canvas for AI\". Zorin OS 18 provides a stable environment for users and makes the transition from Windows easier, while bazzite provides an optimized linux environment for gamers.\nhttps://zorin.com/os/\nhttps://bazzite.gg/\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 Best Desktop Linux For Windows Users", "3MwJbRq3-rM", 525, false, "https://www.youtube.com/watch?v=3MwJbRq3-rM", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e112700_The Best Desktop Linux For Windows Users.mp4", false, 45, ~U[2025-11-27 15:20:25Z]] 05:31:25.830 [debug] QUERY OK source="sources" db=3.9ms queue=0.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 05:31:25.846 [debug] QUERY OK source="media_items" db=14.1ms queue=0.3ms idle=82.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-22 00:08:55Z], 45] 05:31:25.951 [debug] QUERY OK source="media_items" db=101.4ms queue=0.3ms idle=95.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 an uncaught exception in Cloudflare's Rust infrastructure caused their services to go down and by extension large parts of the internet.\n\nCloudflare Blog Links\nhttps://blog.cloudflare.com/18-november-2025-outage/\nhttps://blog.cloudflare.com/20-percent-internet-upgrade/\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", "Cloudflare Breaks the Internet (again)", "7ce8b13a-de59-4042-9665-641ac01d64b1", "qEkiSBxLjUU", 578, false, "https://www.youtube.com/watch?v=qEkiSBxLjUU", 14, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e112200_Cloudflare Breaks the Internet (again).mp4", false, false, false, 45, [], 98, ~U[2025-11-22 00:08:55Z], ~U[2026-03-01 11:31:25Z], ~U[2026-03-01 11:31:25Z], "In this video I discuss how an uncaught exception in Cloudflare's Rust infrastructure caused their services to go down and by extension large parts of the internet.\n\nCloudflare Blog Links\nhttps://blog.cloudflare.com/18-november-2025-outage/\nhttps://blog.cloudflare.com/20-percent-internet-upgrade/\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", "Cloudflare Breaks the Internet (again)", "qEkiSBxLjUU", 578, false, "https://www.youtube.com/watch?v=qEkiSBxLjUU", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e112200_Cloudflare Breaks the Internet (again).mp4", false, 45, ~U[2025-11-22 00:08:55Z]] 05:31:25.956 [debug] QUERY OK source="sources" db=2.4ms queue=0.3ms idle=187.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:31:25.968 [debug] QUERY OK source="media_items" db=10.8ms queue=0.6ms idle=133.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-18 15:54:19Z], 45] 05:31:25.984 [debug] QUERY OK source="media_items" db=13.5ms queue=0.1ms idle=139.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 a Free Software Developer has created software that allows people to use all the features of airpods that are normally only reserved for Apples hardware on Android and Linux devices. If this project is successful people will be able to use the best consumer earbuds ever made without being forced to buy an iPhone, iPad, or Macbook.\n\nTry out the project here\nhttps://github.com/kavishdevar/librepods\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", "Based Developer Makes AirPods Open Source", "7b76b4eb-e780-4041-a076-8a0ed7eaafdd", "m_Mr4bw8Pow", 549, false, "https://www.youtube.com/watch?v=m_Mr4bw8Pow", 15, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e111800_Based Developer Makes AirPods Open Source.mp4", false, false, false, 45, [], 98, ~U[2025-11-18 15:54:19Z], ~U[2026-03-01 11:31:25Z], ~U[2026-03-01 11:31:25Z], "In this video I discuss how a Free Software Developer has created software that allows people to use all the features of airpods that are normally only reserved for Apples hardware on Android and Linux devices. If this project is successful people will be able to use the best consumer earbuds ever made without being forced to buy an iPhone, iPad, or Macbook.\n\nTry out the project here\nhttps://github.com/kavishdevar/librepods\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", "Based Developer Makes AirPods Open Source", "m_Mr4bw8Pow", 549, false, "https://www.youtube.com/watch?v=m_Mr4bw8Pow", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e111800_Based Developer Makes AirPods Open Source.mp4", false, 45, ~U[2025-11-18 15:54:19Z]] 05:31:25.988 [debug] QUERY OK source="sources" db=2.4ms queue=0.3ms idle=139.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] 05:31:25.999 [debug] QUERY OK source="media_items" db=10.1ms queue=0.1ms idle=38.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-14 19:39:30Z], 45] 05:31:26.008 [debug] QUERY OK source="media_items" db=6.2ms queue=0.2ms idle=45.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 a linux community effort to crowd fund the fixing of a speaker issue on the Lenovo Legion Pro 7. Could this become a more common method for fixing bugs in Free and Open Source operating systems? Follow the saga at this git repo https://github.com/nadimkobeissi/16iax10h-linux-sound-saga\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", "Can Crowd Funded Tech Support Fix a Linux Sound Bug?", "961e1ad5-a158-46bd-8306-0b5a1642baa4", "5Wv1FlUeeME", 567, false, "https://www.youtube.com/watch?v=5Wv1FlUeeME", 16, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e111400_Can Crowd Funded Tech Support Fix a Linux Sound Bug?.mp4", false, false, false, 45, [], 98, ~U[2025-11-14 19:39:30Z], ~U[2026-03-01 11:31:26Z], ~U[2026-03-01 11:31:26Z], "In this video I discuss a linux community effort to crowd fund the fixing of a speaker issue on the Lenovo Legion Pro 7. Could this become a more common method for fixing bugs in Free and Open Source operating systems? Follow the saga at this git repo https://github.com/nadimkobeissi/16iax10h-linux-sound-saga\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", "Can Crowd Funded Tech Support Fix a Linux Sound Bug?", "5Wv1FlUeeME", 567, false, "https://www.youtube.com/watch?v=5Wv1FlUeeME", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e111400_Can Crowd Funded Tech Support Fix a Linux Sound Bug?.mp4", false, 45, ~U[2025-11-14 19:39:30Z]] 05:31:26.012 [debug] QUERY OK source="sources" db=2.5ms queue=0.1ms 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" = ?) [45] 05:31:26.022 [debug] QUERY OK source="media_items" db=9.1ms queue=0.1ms idle=29.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-08 20:20:31Z], 45] 05:31:26.031 [debug] QUERY OK source="media_items" db=6.6ms queue=0.1ms idle=35.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 we take a look at how China has monetized toilet paper in public bathrooms. You can pay 0.5 Yuan (about $0.07) or watch a 30 second ad to receive a small portion of toilet paper to clean yourself. Will this addition to the social credit system curtail people stealing free TP or will monetized toilet paper cause a bigger mess in Chinese bathrooms.\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", "China Is Forcing People To Watch Ads for Free Toilet Paper", "18e6deb1-02fb-4c31-8672-51c9f3da1e4c", "c8Phszco8TY", 574, false, "https://www.youtube.com/watch?v=c8Phszco8TY", 17, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e110800_China Is Forcing People To Watch Ads for Free Toilet Paper.mp4", false, false, false, 45, [], 98, ~U[2025-11-08 20:20:31Z], ~U[2026-03-01 11:31:26Z], ~U[2026-03-01 11:31:26Z], "In this video we take a look at how China has monetized toilet paper in public bathrooms. You can pay 0.5 Yuan (about $0.07) or watch a 30 second ad to receive a small portion of toilet paper to clean yourself. Will this addition to the social credit system curtail people stealing free TP or will monetized toilet paper cause a bigger mess in Chinese bathrooms.\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", "China Is Forcing People To Watch Ads for Free Toilet Paper", "c8Phszco8TY", 574, false, "https://www.youtube.com/watch?v=c8Phszco8TY", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e110800_China Is Forcing People To Watch Ads for Free Toilet Paper.mp4", false, 45, ~U[2025-11-08 20:20:31Z]] 05:31:26.035 [debug] QUERY OK source="sources" db=2.0ms queue=0.2ms idle=33.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:31:26.046 [debug] QUERY OK source="media_items" db=10.2ms queue=0.2ms idle=28.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-02 21:25:51Z], 45] 05:31:26.057 [debug] QUERY OK source="media_items" db=7.3ms queue=0.2ms idle=35.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 Police in Columbine Valley Colorado wrongfully accused and tried to charge a woman of package theft because they had records of her driving her car near the street where the theft occurred and a suspect on a security camera that only vaguely resembled the innocent woman.\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 Surveillance State Falsely Accuses You", "06df2b2c-36c7-4435-a578-83dc98f304ca", "A9h2npIn8RQ", 693, false, "https://www.youtube.com/watch?v=A9h2npIn8RQ", 18, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e110200_When the Surveillance State Falsely Accuses You.mp4", false, false, false, 45, [], 98, ~U[2025-11-02 21:25:51Z], ~U[2026-03-01 11:31:26Z], ~U[2026-03-01 11:31:26Z], "In this video I discuss how the Police in Columbine Valley Colorado wrongfully accused and tried to charge a woman of package theft because they had records of her driving her car near the street where the theft occurred and a suspect on a security camera that only vaguely resembled the innocent woman.\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 Surveillance State Falsely Accuses You", "A9h2npIn8RQ", 693, false, "https://www.youtube.com/watch?v=A9h2npIn8RQ", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e110200_When the Surveillance State Falsely Accuses You.mp4", false, 45, ~U[2025-11-02 21:25:51Z]] 05:31:26.061 [debug] QUERY OK source="sources" db=2.4ms queue=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 05:31:26.070 [debug] QUERY OK source="media_items" db=8.7ms queue=0.3ms idle=30.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-31 20:58:17Z], 45] 05:31:26.078 [debug] QUERY OK source="media_items" db=5.5ms queue=0.2ms idle=37.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 Ubuntu's decision to use core utilities written in Rust (uutils) is causing various issues in the distro that could take a long time to completely fix and will likely lead to random bugs like the issue with automatic updates for a while to come.\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", "Rust Core Utils Are Breaking Ubuntu", "33d9c34a-48c2-488e-93bf-410b2f5df15e", "5NeRkZ1A4zY", 566, false, "https://www.youtube.com/watch?v=5NeRkZ1A4zY", 19, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e103100_Rust Core Utils Are Breaking Ubuntu.mp4", false, false, false, 45, [], 98, ~U[2025-10-31 20:58:17Z], ~U[2026-03-01 11:31:26Z], ~U[2026-03-01 11:31:26Z], "In this video I discuss how Ubuntu's decision to use core utilities written in Rust (uutils) is causing various issues in the distro that could take a long time to completely fix and will likely lead to random bugs like the issue with automatic updates for a while to come.\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", "Rust Core Utils Are Breaking Ubuntu", "5NeRkZ1A4zY", 566, false, "https://www.youtube.com/watch?v=5NeRkZ1A4zY", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e103100_Rust Core Utils Are Breaking Ubuntu.mp4", false, 45, ~U[2025-10-31 20:58:17Z]] 05:31:26.081 [debug] QUERY OK source="sources" db=1.8ms queue=0.2ms idle=33.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:31:26.090 [debug] QUERY OK source="media_items" db=8.1ms queue=0.1ms idle=26.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-23 00:00:02Z], 45] 05:31:26.099 [debug] QUERY OK source="media_items" db=5.8ms queue=0.2ms idle=31.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 different Linux distributions are facing attacks which could be a result of the increased popularity of Linux, hackers are taking advantage of Linux newcomers with the death of windows 10, and information security is more important than ever in the Linux 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", "Desktop Linux is Under Attack", "8e0af052-ad3b-4795-8ebe-a0aff792e353", "D_z_w0m4A3E", 545, false, "https://www.youtube.com/watch?v=D_z_w0m4A3E", 20, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e102300_Desktop Linux is Under Attack.mp4", false, false, false, 45, [], 98, ~U[2025-10-23 00:00:02Z], ~U[2026-03-01 11:31:26Z], ~U[2026-03-01 11:31:26Z], "In this video I discuss how different Linux distributions are facing attacks which could be a result of the increased popularity of Linux, hackers are taking advantage of Linux newcomers with the death of windows 10, and information security is more important than ever in the Linux 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", "Desktop Linux is Under Attack", "D_z_w0m4A3E", 545, false, "https://www.youtube.com/watch?v=D_z_w0m4A3E", "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e102300_Desktop Linux is Under Attack.mp4", false, 45, ~U[2025-10-23 00:00:02Z]] 05:31:26.101 [debug] QUERY OK source="sources" db=1.4ms queue=0.1ms idle=29.3ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-01 11:31:26Z], ~U[2026-03-01 11:31:26Z], 45] 05:31:26.112 [debug] QUERY OK source="media_items" db=9.2ms queue=0.2ms idle=24.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")))) [45] 05:31:26.121 [debug] QUERY OK source="media_items" db=8.5ms queue=0.1ms idle=31.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")))) [45] 05:31:26.124 [debug] QUERY OK source="media_items" db=2.0ms queue=0.1ms idle=31.9ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [45] 05:31:26.133 [debug] QUERY OK source="tasks" db=1.8ms idle=19.4ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189114, 45, ~U[2026-03-01 11:31:26Z], ~U[2026-03-01 11:31:26Z]] 05:31:26.136 [info] {"args":{"id":45},"id":189025,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":115291995,"event":"job:stop","queue_time":938247,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 05:31:26.199 [debug] Current batch of media processed. Will check again in 1000ms 05:31:27.200 [debug] Current batch of media processed. Will check again in 1000ms 05:31:27.260 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RzBuqvd_zD4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/6d/72/6d729ea5aefefe1963c33b34df38f90bd61d94eb8d93fb4010b1c8c56b21f2eb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] RzBuqvd_zD4: Join this channel to get access to members-only content like this video, and other exclusive perks. 05:31:27.260 [error] yt-dlp download error for media item #2281148: "ERROR: [youtube] RzBuqvd_zD4: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 05:31:27.262 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":2281148},"id":189113,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5082876,"event":"job:exception","queue_time":174416,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:31:28.201 [debug] Current batch of media processed. Will check again in 1000ms 05:31:29.203 [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\nTimestamps:\n00:00 Intro\n00:44 Sponsor: SquareSpace\n02:00 Mint thinks about making fewer releases\n05:26 Discord facing backlash over privacy and ID checks\n09:07 Linux kernel 6.19 released\n11:37 Machine Learning proposed as a kernel recommendations tool\n13:52 Ubuntu drops their repo management GUI\n15:45 KDE Linux makes big progress with a beta\n18:45 Experimental Wayland protocol for multi windows app\n20:54 Steam Deck sold out in North America and Asia\n22:56 New system proposed to fight AI slop contributions\n\n\n\nLinks:\n\nMint thinks about making fewer releases\nhttps://blog.linuxmint.com/?p=4991\n\nDiscord facing backlash over privacy and ID checks\nhttps://www.techradar.com/computing/social-media/discord-tries-to-share-clarity-on-disastrous-age-verification-plans-amid-mass-cancellations-but-safe-to-say-its-not-helping-its-getting-thoroughly-community-noted\n\nLinux kernel 6.19 released\nhttps://linuxiac.com/linux-kernel-6-19-released/\nhttps://www.omgubuntu.co.uk/2026/02/linux-6-19-kernel-features-amd-performance\n\nMachine Learning proposed as a kernel recommendations tool\nhttps://lore.kernel.org/lkml/47d21a6821c4b2d085f7b97bcdaa205bfcb0e0ad.camel@ibm.com/\n\nUbuntu drops their repo management GUI\nhttps://www.omgubuntu.co.uk/2026/02/ubuntu-26-04-drops-software-and-updates-gui\n\nKDE Linux makes big progress with a beta\nhttps://pointieststick.com/2026/02/06/busy-months-in-kde-linux/\n\nExperimental Wayland protocol for multi windows app\nhttps://www.phoronix.com/news/Wayland-Experimental-Zones\n\nSteam Deck sold out in North America and Asia\nhttps://www.gamingonlinux.com/2026/02/steam-deck-completely-out-of-stock-in-the-us-canada-and-asia/\n\nNew system proposed to fight AI slop contributions\nhttps://github.com/mitchellh/vouch?ref=itsfoss.com\n\n#linuxdesktop #linuxdistro #technews", "duration" => 1714, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021300_New kernel boosts Linux performance, Mint makes big changes, Discord Backlash - Linux Weekly News.mp4", "id" => "9ymhN8q3_d0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=9ymhN8q3_d0", "playlist_index" => 17, "timestamp" => 1770988295, "title" => "New kernel boosts Linux performance, Mint makes big changes, Discord Backlash - Linux Weekly News", "upload_date" => "20260213"} 05:31:29.204 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=1688.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:31:29.205 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1690.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:31:29.214 [debug] QUERY OK source="media_items" db=8.0ms idle=928.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-13 13:11:35Z], 43] 05:31:29.218 [debug] QUERY OK source="media_items" db=2.9ms idle=699.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\nTimestamps:\n00:00 Intro\n00:44 Sponsor: SquareSpace\n02:00 Mint thinks about making fewer releases\n05:26 Discord facing backlash over privacy and ID checks\n09:07 Linux kernel 6.19 released\n11:37 Machine Learning proposed as a kernel recommendations tool\n13:52 Ubuntu drops their repo management GUI\n15:45 KDE Linux makes big progress with a beta\n18:45 Experimental Wayland protocol for multi windows app\n20:54 Steam Deck sold out in North America and Asia\n22:56 New system proposed to fight AI slop contributions\n\n\n\nLinks:\n\nMint thinks about making fewer releases\nhttps://blog.linuxmint.com/?p=4991\n\nDiscord facing backlash over privacy and ID checks\nhttps://www.techradar.com/computing/social-media/discord-tries-to-share-clarity-on-disastrous-age-verification-plans-amid-mass-cancellations-but-safe-to-say-its-not-helping-its-getting-thoroughly-community-noted\n\nLinux kernel 6.19 released\nhttps://linuxiac.com/linux-kernel-6-19-released/\nhttps://www.omgubuntu.co.uk/2026/02/linux-6-19-kernel-features-amd-performance\n\nMachine Learning proposed as a kernel recommendations tool\nhttps://lore.kernel.org/lkml/47d21a6821c4b2d085f7b97bcdaa205bfcb0e0ad.camel@ibm.com/\n\nUbuntu drops their repo management GUI\nhttps://www.omgubuntu.co.uk/2026/02/ubuntu-26-04-drops-software-and-updates-gui\n\nKDE Linux makes big progress with a beta\nhttps://pointieststick.com/2026/02/06/busy-months-in-kde-linux/\n\nExperimental Wayland protocol for multi windows app\nhttps://www.phoronix.com/news/Wayland-Experimental-Zones\n\nSteam Deck sold out in North America and Asia\nhttps://www.gamingonlinux.com/2026/02/steam-deck-completely-out-of-stock-in-the-us-canada-and-asia/\n\nNew system proposed to fight AI slop contributions\nhttps://github.com/mitchellh/vouch?ref=itsfoss.com\n\n#linuxdesktop #linuxdistro #technews", "New kernel boosts Linux performance, Mint makes big changes, Discord Backlash - Linux Weekly News", "7daa53d6-aed2-40f1-a4b7-88876d7404b7", "9ymhN8q3_d0", 1714, false, "https://www.youtube.com/watch?v=9ymhN8q3_d0", 17, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021300_New kernel boosts Linux performance, Mint makes big changes, Discord Backlash - Linux Weekly News.mp4", false, false, false, 43, [], 97, ~U[2026-02-13 13:11:35Z], ~U[2026-03-01 11:31:29Z], ~U[2026-03-01 11:31:29Z], "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\nTimestamps:\n00:00 Intro\n00:44 Sponsor: SquareSpace\n02:00 Mint thinks about making fewer releases\n05:26 Discord facing backlash over privacy and ID checks\n09:07 Linux kernel 6.19 released\n11:37 Machine Learning proposed as a kernel recommendations tool\n13:52 Ubuntu drops their repo management GUI\n15:45 KDE Linux makes big progress with a beta\n18:45 Experimental Wayland protocol for multi windows app\n20:54 Steam Deck sold out in North America and Asia\n22:56 New system proposed to fight AI slop contributions\n\n\n\nLinks:\n\nMint thinks about making fewer releases\nhttps://blog.linuxmint.com/?p=4991\n\nDiscord facing backlash over privacy and ID checks\nhttps://www.techradar.com/computing/social-media/discord-tries-to-share-clarity-on-disastrous-age-verification-plans-amid-mass-cancellations-but-safe-to-say-its-not-helping-its-getting-thoroughly-community-noted\n\nLinux kernel 6.19 released\nhttps://linuxiac.com/linux-kernel-6-19-released/\nhttps://www.omgubuntu.co.uk/2026/02/linux-6-19-kernel-features-amd-performance\n\nMachine Learning proposed as a kernel recommendations tool\nhttps://lore.kernel.org/lkml/47d21a6821c4b2d085f7b97bcdaa205bfcb0e0ad.camel@ibm.com/\n\nUbuntu drops their repo management GUI\nhttps://www.omgubuntu.co.uk/2026/02/ubuntu-26-04-drops-software-and-updates-gui\n\nKDE Linux makes big progress with a beta\nhttps://pointieststick.com/2026/02/06/busy-months-in-kde-linux/\n\nExperimental Wayland protocol for multi windows app\nhttps://www.phoronix.com/news/Wayland-Experimental-Zones\n\nSteam Deck sold out in North America and Asia\nhttps://www.gamingonlinux.com/2026/02/steam-deck-completely-out-of-stock-in-the-us-canada-and-asia/\n\nNew system proposed to fight AI slop contributions\nhttps://github.com/mitchellh/vouch?ref=itsfoss.com\n\n#linuxdesktop #linuxdistro #technews", "New kernel boosts Linux performance, Mint makes big changes, Discord Backlash - Linux Weekly News", "9ymhN8q3_d0", 1714, false, "https://www.youtube.com/watch?v=9ymhN8q3_d0", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021300_New kernel boosts Linux performance, Mint makes big changes, Discord Backlash - Linux Weekly News.mp4", false, 43, ~U[2026-02-13 13:11:35Z]] 05:31:29.219 [debug] QUERY OK source="sources" db=0.3ms idle=703.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] 05:31:29.220 [debug] QUERY OK source="media_profiles" db=0.4ms idle=15.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] 05:31:29.221 [debug] QUERY OK source="media_items" db=0.6ms idle=14.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 [2258178] 05:31:29.221 [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 Deck sold out in North America and Asia\n03:27 Fake AI extensions stole 300K users' credentials and emails\n06:40 New system proposed to fight AI slop contributions\n\nLinks:\n\nSteam Deck sold out in North America and Asia\nhttps://www.gamingonlinux.com/2026/02/steam-deck-completely-out-of-stock-in-the-us-canada-and-asia/\n\nFake AI extensions stole 300K users' credentials and emails\nhttps://www.bleepingcomputer.com/news/security/fake-ai-chrome-extensions-with-300k-users-steal-credentials-emails/\n\nNew system proposed to fight AI slop contributions\nhttps://itsfoss.com/news/mitchell-hashimoto-vouch/", "duration" => 721, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021300_Daily Linux News - S03E30 - New system to fight AI slop in open source, Steam Deck is sold out.NA", "id" => "HEJTI2vWgZM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=HEJTI2vWgZM", "playlist_index" => 18, "timestamp" => 1770973254, "title" => "Daily Linux News - S03E30 - New system to fight AI slop in open source, Steam Deck is sold out", "upload_date" => "20260213"} 05:31:29.223 [debug] QUERY OK source="sources" db=0.9ms 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" IN (?)) [43] 05:31:29.223 [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" = ?) [43] 05:31:29.230 [debug] QUERY OK source="media_items" db=6.8ms queue=0.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-02-13 09:00:54Z], 43] 05:31:29.233 [debug] QUERY OK source="media_items" db=1.7ms 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" ["👕 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 Deck sold out in North America and Asia\n03:27 Fake AI extensions stole 300K users' credentials and emails\n06:40 New system proposed to fight AI slop contributions\n\nLinks:\n\nSteam Deck sold out in North America and Asia\nhttps://www.gamingonlinux.com/2026/02/steam-deck-completely-out-of-stock-in-the-us-canada-and-asia/\n\nFake AI extensions stole 300K users' credentials and emails\nhttps://www.bleepingcomputer.com/news/security/fake-ai-chrome-extensions-with-300k-users-steal-credentials-emails/\n\nNew system proposed to fight AI slop contributions\nhttps://itsfoss.com/news/mitchell-hashimoto-vouch/", "Daily Linux News - S03E30 - New system to fight AI slop in open source, Steam Deck is sold out", "48fa436a-f254-4114-b62b-a32962b37adc", "HEJTI2vWgZM", 721, false, "https://www.youtube.com/watch?v=HEJTI2vWgZM", 18, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021300_Daily Linux News - S03E30 - New system to fight AI slop in open source, Steam Deck is sold out.NA", false, false, false, 43, [], 97, ~U[2026-02-13 09:00:54Z], ~U[2026-03-01 11:31:29Z], ~U[2026-03-01 11:31: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 Steam Deck sold out in North America and Asia\n03:27 Fake AI extensions stole 300K users' credentials and emails\n06:40 New system proposed to fight AI slop contributions\n\nLinks:\n\nSteam Deck sold out in North America and Asia\nhttps://www.gamingonlinux.com/2026/02/steam-deck-completely-out-of-stock-in-the-us-canada-and-asia/\n\nFake AI extensions stole 300K users' credentials and emails\nhttps://www.bleepingcomputer.com/news/security/fake-ai-chrome-extensions-with-300k-users-steal-credentials-emails/\n\nNew system proposed to fight AI slop contributions\nhttps://itsfoss.com/news/mitchell-hashimoto-vouch/", "Daily Linux News - S03E30 - New system to fight AI slop in open source, Steam Deck is sold out", "HEJTI2vWgZM", 721, false, "https://www.youtube.com/watch?v=HEJTI2vWgZM", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021300_Daily Linux News - S03E30 - New system to fight AI slop in open source, Steam Deck is sold out.NA", false, 43, ~U[2026-02-13 09:00:54Z]] 05:31:29.234 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [43] 05:31:29.235 [debug] QUERY OK source="media_profiles" db=0.3ms idle=11.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] 05:31:29.236 [debug] QUERY OK source="media_items" db=0.5ms idle=11.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 [2256259] 05:31:29.236 [info] Kicking off download for media item #2256259 (HEJTI2vWgZM) 05:31:29.238 [debug] Current batch of media processed. Will check again in 1000ms 05:31:30.240 [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 Mesa 26 released with raytracing improvements\n02:07 Mint thinks about making fewer releases\n07:52 Discord facing backlash over privacy and ID checks\n\n\nLinks:\n\nMesa 26 released with raytracing improvements\nhttps://9to5linux.com/mesa-26-0-open-source-graphics-stack-officially-released-heres-whats-new\n\nMint thinks about making fewer releases\nhttps://blog.linuxmint.com/?p=4991\n\nDiscord facing backlash over privacy and ID checks\nhttps://www.techradar.com/computing/social-media/discord-tries-to-share-clarity-on-disastrous-age-verification-plans-amid-mass-cancellations-but-safe-to-say-its-not-helping-its-getting-thoroughly-community-noted", "duration" => 766, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021200_Daily Linux News - S03E29 - Mint looking at longer release times, Discord backlash.NA", "id" => "tJnG3Zeuyb8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tJnG3Zeuyb8", "playlist_index" => 19, "timestamp" => 1770884647, "title" => "Daily Linux News - S03E29 - Mint looking at longer release times, Discord backlash", "upload_date" => "20260212"} 05:31:30.241 [debug] QUERY OK source="sources" db=0.9ms idle=1006.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:31:30.242 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1006.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] 05:31:30.250 [debug] QUERY OK source="media_items" db=7.3ms idle=1006.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-12 08:24:07Z], 43] 05:31:30.253 [debug] QUERY OK source="media_items" db=2.1ms idle=1012.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 Mesa 26 released with raytracing improvements\n02:07 Mint thinks about making fewer releases\n07:52 Discord facing backlash over privacy and ID checks\n\n\nLinks:\n\nMesa 26 released with raytracing improvements\nhttps://9to5linux.com/mesa-26-0-open-source-graphics-stack-officially-released-heres-whats-new\n\nMint thinks about making fewer releases\nhttps://blog.linuxmint.com/?p=4991\n\nDiscord facing backlash over privacy and ID checks\nhttps://www.techradar.com/computing/social-media/discord-tries-to-share-clarity-on-disastrous-age-verification-plans-amid-mass-cancellations-but-safe-to-say-its-not-helping-its-getting-thoroughly-community-noted", "Daily Linux News - S03E29 - Mint looking at longer release times, Discord backlash", "cc44ccaa-57cf-4557-bc0b-25e1f25fd6fd", "tJnG3Zeuyb8", 766, false, "https://www.youtube.com/watch?v=tJnG3Zeuyb8", 19, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021200_Daily Linux News - S03E29 - Mint looking at longer release times, Discord backlash.NA", false, false, false, 43, [], 98, ~U[2026-02-12 08:24:07Z], ~U[2026-03-01 11:31:30Z], ~U[2026-03-01 11:31: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 Mesa 26 released with raytracing improvements\n02:07 Mint thinks about making fewer releases\n07:52 Discord facing backlash over privacy and ID checks\n\n\nLinks:\n\nMesa 26 released with raytracing improvements\nhttps://9to5linux.com/mesa-26-0-open-source-graphics-stack-officially-released-heres-whats-new\n\nMint thinks about making fewer releases\nhttps://blog.linuxmint.com/?p=4991\n\nDiscord facing backlash over privacy and ID checks\nhttps://www.techradar.com/computing/social-media/discord-tries-to-share-clarity-on-disastrous-age-verification-plans-amid-mass-cancellations-but-safe-to-say-its-not-helping-its-getting-thoroughly-community-noted", "Daily Linux News - S03E29 - Mint looking at longer release times, Discord backlash", "tJnG3Zeuyb8", 766, false, "https://www.youtube.com/watch?v=tJnG3Zeuyb8", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021200_Daily Linux News - S03E29 - Mint looking at longer release times, Discord backlash.NA", false, 43, ~U[2026-02-12 08:24:07Z]] 05:31:30.254 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=973.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:31:30.255 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.2ms idle=13.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] 05:31:30.256 [debug] QUERY OK source="media_items" db=0.4ms idle=13.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 [2248439] 05:31:30.256 [info] Kicking off download for media item #2248439 (tJnG3Zeuyb8) 05:31:30.259 [debug] Current batch of media processed. Will check again in 1000ms 05:31:31.159 [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/91/88/9188b604024842e76fa366302adb0fb8a034660ac158737fd4c0a7674b9e36f1.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/c1/0ac1afe6cfa4a04f419165815dd515628e331c0d142277c1e641ab5467f8eb4f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 05:31:31.160 [debug] Gracefully stopping file follower 05:31:31.161 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=906.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:31:31.162 [debug] QUERY OK source="sources" db=0.3ms idle=906.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:31:31.170 [debug] QUERY OK source="media_items" db=7.8ms idle=906.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 09:00:01Z], 43] 05:31:31.175 [debug] QUERY OK source="media_items" db=3.1ms idle=911.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" ["Secure your passwords and logins with Proton Pass: https://proton.me/pass/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:\n\n00:00 Intro\n00:30 Sponsor: Proton Pass\n01:40 Nvidia & Intel hire Linux devs\n04:25 KDE Connect plans full redesign\n07:03 New open standard aims to unify digital services\n09:25 Ubuntu adds password feedback for sudo\n11:08 Firefox 148 out with AI killswitch\n14:06 LibreOffice Online resumes efforts\n16:10 ARM & Linaro create CoreCollective for ARM\n18:02 SystemD removes support for SysV Init\n20:06 Microsoft improves compatibility between DX and Vulkan\n21:30 Sponsor: Tuxedo Computers\n\n\nLinks:\n\nNvidia &Intel hire Linux devs\nhttps://www.gamingonlinux.com/2026/02/nvidia-hiring-linux-driver-engineers-to-help-with-vulkan-proton-and-more/\nhttps://www.phoronix.com/news/Intel-Linux-Jobs-February-2026\n\nKDE Connect plans full redesign\nhttps://tintotint.eu/programming/kde-connect/\n\nNew open standard aims to unify digital services\nhttps://goodtech.info/openburo-standard-europeen-orchestration-alternative-microsoft-365-dinum-linagora/\nhttps://open-buro.eu/#news\n\nUbuntu adds password feedback for sudo\nhttps://www.omgubuntu.co.uk/2026/02/ubuntu-26-04-sudo-password-asterisks\n\nFirefox 148 out with AI killswitch\nhttps://www.omgubuntu.co.uk/2026/02/firefox-148-released-ai-kill-switch\n\nLibreOffice Online resumes efforts\nhttps://linuxiac.com/libreoffice-online-project-reopened-with-new-community-focus/\nhttps://en.ubunlog.com/LibreOffice-Online-Resurrection-Conflict-Collabora-Document-Foundation/\n\nARM & Linaro create CoreCollective for ARM\nhttps://www.phoronix.com/news/CoreCollective\n\nSystemD removes support for SysV Init\nhttps://github.com/systemd/systemd/releases/tag/v260-rc1\n\nMicrosoft improves compatibility between DX and Vulkan\nhttps://www.phoronix.com/news/DX-Shader-Compiler-Better-VLK\n\n#linuxdistro #linuxdesktop #technews", "Nvidia & Intel focus on Linux, KDE Connect redesign, standard for digital apps - Linux Weekly News", "9d9f5a28-b187-42fc-9b0a-3abaebf9ae97", "lGUU1mfq-40", 1397, false, "https://www.youtube.com/watch?v=lGUU1mfq-40", 1, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022800_Nvidia & Intel focus on Linux, KDE Connect redesign, standard for digital apps - Linux Weekly News.mp4", false, false, false, 43, [], 98, ~U[2026-02-28 09:00:01Z], ~U[2026-03-01 11:31:31Z], ~U[2026-03-01 11:31:31Z], "Secure your passwords and logins with Proton Pass: https://proton.me/pass/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:\n\n00:00 Intro\n00:30 Sponsor: Proton Pass\n01:40 Nvidia & Intel hire Linux devs\n04:25 KDE Connect plans full redesign\n07:03 New open standard aims to unify digital services\n09:25 Ubuntu adds password feedback for sudo\n11:08 Firefox 148 out with AI killswitch\n14:06 LibreOffice Online resumes efforts\n16:10 ARM & Linaro create CoreCollective for ARM\n18:02 SystemD removes support for SysV Init\n20:06 Microsoft improves compatibility between DX and Vulkan\n21:30 Sponsor: Tuxedo Computers\n\n\nLinks:\n\nNvidia &Intel hire Linux devs\nhttps://www.gamingonlinux.com/2026/02/nvidia-hiring-linux-driver-engineers-to-help-with-vulkan-proton-and-more/\nhttps://www.phoronix.com/news/Intel-Linux-Jobs-February-2026\n\nKDE Connect plans full redesign\nhttps://tintotint.eu/programming/kde-connect/\n\nNew open standard aims to unify digital services\nhttps://goodtech.info/openburo-standard-europeen-orchestration-alternative-microsoft-365-dinum-linagora/\nhttps://open-buro.eu/#news\n\nUbuntu adds password feedback for sudo\nhttps://www.omgubuntu.co.uk/2026/02/ubuntu-26-04-sudo-password-asterisks\n\nFirefox 148 out with AI killswitch\nhttps://www.omgubuntu.co.uk/2026/02/firefox-148-released-ai-kill-switch\n\nLibreOffice Online resumes efforts\nhttps://linuxiac.com/libreoffice-online-project-reopened-with-new-community-focus/\nhttps://en.ubunlog.com/LibreOffice-Online-Resurrection-Conflict-Collabora-Document-Foundation/\n\nARM & Linaro create CoreCollective for ARM\nhttps://www.phoronix.com/news/CoreCollective\n\nSystemD removes support for SysV Init\nhttps://github.com/systemd/systemd/releases/tag/v260-rc1\n\nMicrosoft improves compatibility between DX and Vulkan\nhttps://www.phoronix.com/news/DX-Shader-Compiler-Better-VLK\n\n#linuxdistro #linuxdesktop #technews", "Nvidia & Intel focus on Linux, KDE Connect redesign, standard for digital apps - Linux Weekly News", "lGUU1mfq-40", 1397, false, "https://www.youtube.com/watch?v=lGUU1mfq-40", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022800_Nvidia & Intel focus on Linux, KDE Connect redesign, standard for digital apps - Linux Weekly News.mp4", false, 43, ~U[2026-02-28 09:00:01Z]] 05:31:31.176 [debug] QUERY OK source="sources" db=0.5ms idle=893.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] 05:31:31.184 [debug] QUERY OK source="media_items" db=7.9ms queue=0.1ms idle=14.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 09:44:39Z], 43] 05:31:31.187 [debug] QUERY OK source="media_items" db=2.2ms idle=22.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 KDE Connect plans full redesign\n03:43 Microsoft improves compatibility between DX and Vulkan\n05:06 Ubuntu adds password feedback for sudo\n\n\n\nLinks:\nKDE Connect plans full redesign\nhttps://tintotint.eu/programming/kde-connect/\n\nMicrosoft improves compatibility between DX and Vulkan\nhttps://www.phoronix.com/news/DX-Shader-Compiler-Better-VLK\n\nUbuntu adds password feedback for sudo\nhttps://www.omgubuntu.co.uk/2026/02/ubuntu-26-04-sudo-password-asterisks", "Daily Linux News - S03E40 - KDE Connect redesign, Ubuntu adds password feedback", "2470cc88-183d-4f7c-854b-18b7fe488819", "IoCPWX_oYb0", 472, false, "https://www.youtube.com/watch?v=IoCPWX_oYb0", 2, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022700_Daily Linux News - S03E40 - KDE Connect redesign, Ubuntu adds password feedback.NA", false, false, false, 43, [], 98, ~U[2026-02-27 09:44:39Z], ~U[2026-03-01 11:31:31Z], ~U[2026-03-01 11:31:31Z], "👕 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 KDE Connect plans full redesign\n03:43 Microsoft improves compatibility between DX and Vulkan\n05:06 Ubuntu adds password feedback for sudo\n\n\n\nLinks:\nKDE Connect plans full redesign\nhttps://tintotint.eu/programming/kde-connect/\n\nMicrosoft improves compatibility between DX and Vulkan\nhttps://www.phoronix.com/news/DX-Shader-Compiler-Better-VLK\n\nUbuntu adds password feedback for sudo\nhttps://www.omgubuntu.co.uk/2026/02/ubuntu-26-04-sudo-password-asterisks", "Daily Linux News - S03E40 - KDE Connect redesign, Ubuntu adds password feedback", "IoCPWX_oYb0", 472, false, "https://www.youtube.com/watch?v=IoCPWX_oYb0", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022700_Daily Linux News - S03E40 - KDE Connect redesign, Ubuntu adds password feedback.NA", false, 43, ~U[2026-02-27 09:44:39Z]] 05:31:31.189 [debug] QUERY OK source="sources" db=1.0ms idle=17.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:31:31.196 [debug] QUERY OK source="media_items" db=7.3ms idle=14.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 14:32:53Z], 43] 05:31:31.199 [debug] QUERY OK source="media_items" db=2.1ms idle=21.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" ["Grab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en# \n\nWhy I don't like Tiling WMs: https://youtu.be/aeifzxaDOVo\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:38 Cosmic\n02:48 Pantheon\n04:30 KDE Plasma\n06:26 Cinnamon\n08:29 Budgie\n10:34 XFCE\n12.36 MATE\n14:21 GNOME\n17:07 Deepin\n18:46 Unity\n20:10 LXQt\n21:21 Conclusion\n23:54 Sponsor: Tuxedo Computers\n\n#linuxdesktop #linuxdistro #tierlist", "Ranking Linux desktop environments for 2026 !", "544d8d75-459b-49e6-a1c0-381f6c77317f", "IiluQ6dJyL8", 1540, false, "https://www.youtube.com/watch?v=IiluQ6dJyL8", 3, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022600_Ranking Linux desktop environments for 2026 !.mp4", false, false, false, 43, [], 97, ~U[2026-02-26 14:32:53Z], ~U[2026-03-01 11:31:31Z], ~U[2026-03-01 11:31:31Z], "Grab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en# \n\nWhy I don't like Tiling WMs: https://youtu.be/aeifzxaDOVo\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:38 Cosmic\n02:48 Pantheon\n04:30 KDE Plasma\n06:26 Cinnamon\n08:29 Budgie\n10:34 XFCE\n12.36 MATE\n14:21 GNOME\n17:07 Deepin\n18:46 Unity\n20:10 LXQt\n21:21 Conclusion\n23:54 Sponsor: Tuxedo Computers\n\n#linuxdesktop #linuxdistro #tierlist", "Ranking Linux desktop environments for 2026 !", "IiluQ6dJyL8", 1540, false, "https://www.youtube.com/watch?v=IiluQ6dJyL8", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022600_Ranking Linux desktop environments for 2026 !.mp4", false, 43, ~U[2026-02-26 14:32:53Z]] 05:31:31.201 [debug] QUERY OK source="sources" db=1.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 05:31:31.210 [debug] QUERY OK source="media_items" db=8.1ms idle=14.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-26 09:17:17Z], 43] 05:31:31.213 [debug] QUERY OK source="media_items" db=2.0ms queue=0.1ms 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" ["👕 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 Fedora smartphone edition\n02:48 ARM & Linaro create CoreCollective for ARM\n04:31 SystemD removes support for SysV Init\n06:29 Lutris now supports Valve's Linux runtime\n\n\nLinks:\nFedora smartphone edition\nhttps://itsfoss.com/news/fedora-pocketblue-remix-overview/\n\nARM & Linaro create CoreCollective for ARM\nhttps://www.phoronix.com/news/CoreCollective\n\nSystemD removes support for SysV Init\nhttps://github.com/systemd/systemd/releases/tag/v260-rc1\n\nLutris now supports Valve's Linux runtime\nhttps://www.gamingonlinux.com/2026/02/lutris-v0-5-21-and-v0-5-22-arrive-with-valves-sniper-runtime-support-and-new-game-runners/", "Daily Linux News - S03E39 - Fedora for phones, ARM open source initiative", "de09de4e-ecb9-4db6-8541-3892084faeff", "lJHsCc57j3U", 523, false, "https://www.youtube.com/watch?v=lJHsCc57j3U", 4, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022600_Daily Linux News - S03E39 - Fedora for phones, ARM open source initiative.NA", false, false, false, 43, [], 97, ~U[2026-02-26 09:17:17Z], ~U[2026-03-01 11:31:31Z], ~U[2026-03-01 11:31:31Z], "👕 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 Fedora smartphone edition\n02:48 ARM & Linaro create CoreCollective for ARM\n04:31 SystemD removes support for SysV Init\n06:29 Lutris now supports Valve's Linux runtime\n\n\nLinks:\nFedora smartphone edition\nhttps://itsfoss.com/news/fedora-pocketblue-remix-overview/\n\nARM & Linaro create CoreCollective for ARM\nhttps://www.phoronix.com/news/CoreCollective\n\nSystemD removes support for SysV Init\nhttps://github.com/systemd/systemd/releases/tag/v260-rc1\n\nLutris now supports Valve's Linux runtime\nhttps://www.gamingonlinux.com/2026/02/lutris-v0-5-21-and-v0-5-22-arrive-with-valves-sniper-runtime-support-and-new-game-runners/", "Daily Linux News - S03E39 - Fedora for phones, ARM open source initiative", "lJHsCc57j3U", 523, false, "https://www.youtube.com/watch?v=lJHsCc57j3U", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022600_Daily Linux News - S03E39 - Fedora for phones, ARM open source initiative.NA", false, 43, ~U[2026-02-26 09:17:17Z]] 05:31:31.214 [debug] QUERY OK source="sources" db=1.0ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 05:31:31.222 [debug] QUERY OK source="media_items" db=8.0ms idle=15.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-25 10:34:10Z], 43] 05:31:31.225 [debug] QUERY OK source="media_items" db=2.0ms idle=21.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 LibreOffice Online resumes efforts\n02:30 Australia shares open source malware analysis suite\n04:41 Interesting Cosmic update hints at KDE theming\n\n\nLinks:\n\nLibreOffice Online resumes efforts\nhttps://linuxiac.com/libreoffice-online-project-reopened-with-new-community-focus/\n\nAustralia shares open source malware analysis suite\nhttps://itsfoss.com/news/azul-malware-analysis-repository/\n\nInteresting Cosmic update hints at KDE theming\nhttps://blog.system76.com/post/cosmic-1-0-8-released", "Daily Linux News - S03E38 - Australia open sources malware repo, Cosmic update hints at KDE theming", "5aaa8fa0-dc37-415b-8441-876c6b27c7b7", "leq-qvYXsp0", 460, false, "https://www.youtube.com/watch?v=leq-qvYXsp0", 5, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022500_Daily Linux News - S03E38 - Australia open sources malware repo, Cosmic update hints at KDE theming.NA", false, false, false, 43, [], 98, ~U[2026-02-25 10:34:10Z], ~U[2026-03-01 11:31:31Z], ~U[2026-03-01 11:31:31Z], "👕 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 LibreOffice Online resumes efforts\n02:30 Australia shares open source malware analysis suite\n04:41 Interesting Cosmic update hints at KDE theming\n\n\nLinks:\n\nLibreOffice Online resumes efforts\nhttps://linuxiac.com/libreoffice-online-project-reopened-with-new-community-focus/\n\nAustralia shares open source malware analysis suite\nhttps://itsfoss.com/news/azul-malware-analysis-repository/\n\nInteresting Cosmic update hints at KDE theming\nhttps://blog.system76.com/post/cosmic-1-0-8-released", "Daily Linux News - S03E38 - Australia open sources malware repo, Cosmic update hints at KDE theming", "leq-qvYXsp0", 460, false, "https://www.youtube.com/watch?v=leq-qvYXsp0", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022500_Daily Linux News - S03E38 - Australia open sources malware repo, Cosmic update hints at KDE theming.NA", false, 43, ~U[2026-02-25 10:34:10Z]] 05:31:31.227 [debug] QUERY OK source="sources" db=1.2ms idle=16.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:31:31.235 [debug] QUERY OK source="media_items" db=7.4ms idle=15.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-24 09:45:47Z], 43] 05:31:31.244 [debug] QUERY OK source="media_items" db=8.0ms idle=21.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 Nvidia also hires Linux devs\n02:08 Firefox 148 out with AI killswitch\n06:00 New version of TuneD to improve power management\n07:48 0. A.D. no longer in alpha\n\n\nLinks:\nNvidia also hires Linux devs\nhttps://www.gamingonlinux.com/2026/02/nvidia-hiring-linux-driver-engineers-to-help-with-vulkan-proton-and-more/\n\nFirefox 148 out with AI killswitch\nhttps://www.omgubuntu.co.uk/2026/02/firefox-148-released-ai-kill-switch\n\nNew version of TuneD to improve power management\nhttps://www.phoronix.com/news/Red-Hat-Tuned-2.27\n\n0. A.D. no longer in alpha\nhttps://play0ad.com/new-release-0-a-d-release-28-boiorix/", "Daily Linux News - S03E37 - Firefox 148, Nvidia hiring Linux devs", "e5d4501e-a459-49c7-bd79-bce836407201", "G9A4oHW0fAk", 615, false, "https://www.youtube.com/watch?v=G9A4oHW0fAk", 6, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022400_Daily Linux News - S03E37 - Firefox 148, Nvidia hiring Linux devs.NA", false, false, false, 43, [], 98, ~U[2026-02-24 09:45:47Z], ~U[2026-03-01 11:31:31Z], ~U[2026-03-01 11:31:31Z], "👕 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 Nvidia also hires Linux devs\n02:08 Firefox 148 out with AI killswitch\n06:00 New version of TuneD to improve power management\n07:48 0. A.D. no longer in alpha\n\n\nLinks:\nNvidia also hires Linux devs\nhttps://www.gamingonlinux.com/2026/02/nvidia-hiring-linux-driver-engineers-to-help-with-vulkan-proton-and-more/\n\nFirefox 148 out with AI killswitch\nhttps://www.omgubuntu.co.uk/2026/02/firefox-148-released-ai-kill-switch\n\nNew version of TuneD to improve power management\nhttps://www.phoronix.com/news/Red-Hat-Tuned-2.27\n\n0. A.D. no longer in alpha\nhttps://play0ad.com/new-release-0-a-d-release-28-boiorix/", "Daily Linux News - S03E37 - Firefox 148, Nvidia hiring Linux devs", "G9A4oHW0fAk", 615, false, "https://www.youtube.com/watch?v=G9A4oHW0fAk", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022400_Daily Linux News - S03E37 - Firefox 148, Nvidia hiring Linux devs.NA", false, 43, ~U[2026-02-24 09:45:47Z]] 05:31:31.246 [debug] QUERY OK source="sources" db=1.3ms idle=21.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] 05:31:31.254 [debug] QUERY OK source="media_items" db=8.1ms queue=0.1ms 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-23 10:27:43Z], 43] 05:31:31.257 [debug] QUERY OK source="media_items" db=2.1ms idle=27.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/", "Daily Linux News - S03E36 - Intel hires Linux devs again, New standard for online workspaces", "81d71890-7618-4536-83dd-b53b743bf9a6", "CYuRCN7Kjg0", 865, false, "https://www.youtube.com/watch?v=CYuRCN7Kjg0", 7, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022300_Daily Linux News - S03E36 - Intel hires Linux devs again, New standard for online workspaces.NA", false, false, false, 43, [], 97, ~U[2026-02-23 10:27:43Z], ~U[2026-03-01 11:31:31Z], ~U[2026-03-01 11:31:31Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/", "Daily Linux News - S03E36 - Intel hires Linux devs again, New standard for online workspaces", "CYuRCN7Kjg0", 865, false, "https://www.youtube.com/watch?v=CYuRCN7Kjg0", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022300_Daily Linux News - S03E36 - Intel hires Linux devs again, New standard for online workspaces.NA", false, 43, ~U[2026-02-23 10:27:43Z]] 05:31:31.260 [debug] QUERY OK source="sources" db=1.8ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 05:31:31.269 [debug] QUERY OK source="media_items" db=9.1ms queue=0.1ms idle=16.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-23 08:35:52Z], 43] 05:31:31.272 [debug] QUERY OK source="media_items" db=1.7ms idle=24.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/", "Patroncast S06E08 - Enshittification & other less terrible things", "88896cec-3da9-433a-882e-c95a0cbaebf8", "cvcwU3-g3rs", 1378, false, "https://www.youtube.com/watch?v=cvcwU3-g3rs", 8, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022300_Patroncast S06E08 - Enshittification & other less terrible things.NA", false, false, false, 43, [], 97, ~U[2026-02-23 08:35:52Z], ~U[2026-03-01 11:31:31Z], ~U[2026-03-01 11:31:31Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/", "Patroncast S06E08 - Enshittification & other less terrible things", "cvcwU3-g3rs", 1378, false, "https://www.youtube.com/watch?v=cvcwU3-g3rs", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022300_Patroncast S06E08 - Enshittification & other less terrible things.NA", false, 43, ~U[2026-02-23 08:35:52Z]] 05:31:31.273 [debug] QUERY OK source="sources" db=1.1ms idle=17.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 05:31:31.282 [debug] QUERY OK source="media_items" db=8.4ms idle=16.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-21 09:44:06Z], 43] 05:31:31.290 [debug] QUERY OK source="media_items" db=6.0ms queue=0.2ms idle=13.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" ["Use a secure, encrypted, and fast VPN with Proton VPN: https://protonvpn.com/TheLinuxEXP\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:32 Sponsor: Proton VPN\n01:44 GNOME 50 got a massive beta\n04:10 GNOME OS nearing stable release\n07:19 Plasma 6.6 released\n10:17 KDE debunks FUD around systemD\n13:06 Budgie 11 gearing up for first preview\n14:48 EU takes aim at infinite scrolling\n17:45 EU parliament blocks AI features\n19:52 AsteroidOS brings Linux to your smartwatch\n21:57 Project aims to bring NetBSD utilities to Linux\n23:41 Sponsor: Tuxedo Computers\n\n\nLinks:\nGNOME 50 got a massive beta\nhttps://9to5linux.com/gnome-50-desktop-environment-enters-public-beta-testing-with-more-new-features\n\nGNOME OS nearing stable release\nhttps://blogs.gnome.org/adrianvovk/2026/02/18/gnome-os-hackfest-fosdem-2026/\n\nPlasma 6.6 released\nhttps://kde.org/announcements/plasma/6/6.6.0/\n\nKDE debunks FUD around systemD\nhttps://www.reddit.com/r/kde/comments/1r68jmi/a_quick_antifud_faq_to_debunk_the_kde_is_forcing/\n\nBudgie 11 gearing up for first preview\nhttps://buddiesofbudgie.org/blog/chirp-5\n\nEU takes aim at infinite scrolling\nhttps://www.politico.eu/article/tiktok-meta-facebook-instagram-brussels-kill-infinite-scrolling/\n\nEU parliament blocks AI features\nhttps://www.politico.eu/article/eu-parliament-blocks-ai-features-over-cyber-privacy-fears/\n\nAsteroidOS brings Linux to your smartwatch\nhttps://itsfoss.com/news/asteroidos-2-release/\n\nProject aims to bring NetBSD utilities to Linux\nhttps://linuxiac.com/netbase-brings-netbsd-userland-utilities-to-linux/\n\n#linuxdesktop #linuxdistro #technews", "GNOME 50 and GNOME OS progress, KDE debunks systemD FUD - Linux weekly News", "9d62c13b-bd60-4fc9-9d06-bb3d83382ab3", "IZStNPWpE_0", 1540, false, "https://www.youtube.com/watch?v=IZStNPWpE_0", 9, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022100_GNOME 50 and GNOME OS progress, KDE debunks systemD FUD - Linux weekly News.mp4", false, false, false, 43, [], 98, ~U[2026-02-21 09:44:06Z], ~U[2026-03-01 11:31:31Z], ~U[2026-03-01 11:31:31Z], "Use a secure, encrypted, and fast VPN with Proton VPN: https://protonvpn.com/TheLinuxEXP\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:32 Sponsor: Proton VPN\n01:44 GNOME 50 got a massive beta\n04:10 GNOME OS nearing stable release\n07:19 Plasma 6.6 released\n10:17 KDE debunks FUD around systemD\n13:06 Budgie 11 gearing up for first preview\n14:48 EU takes aim at infinite scrolling\n17:45 EU parliament blocks AI features\n19:52 AsteroidOS brings Linux to your smartwatch\n21:57 Project aims to bring NetBSD utilities to Linux\n23:41 Sponsor: Tuxedo Computers\n\n\nLinks:\nGNOME 50 got a massive beta\nhttps://9to5linux.com/gnome-50-desktop-environment-enters-public-beta-testing-with-more-new-features\n\nGNOME OS nearing stable release\nhttps://blogs.gnome.org/adrianvovk/2026/02/18/gnome-os-hackfest-fosdem-2026/\n\nPlasma 6.6 released\nhttps://kde.org/announcements/plasma/6/6.6.0/\n\nKDE debunks FUD around systemD\nhttps://www.reddit.com/r/kde/comments/1r68jmi/a_quick_antifud_faq_to_debunk_the_kde_is_forcing/\n\nBudgie 11 gearing up for first preview\nhttps://buddiesofbudgie.org/blog/chirp-5\n\nEU takes aim at infinite scrolling\nhttps://www.politico.eu/article/tiktok-meta-facebook-instagram-brussels-kill-infinite-scrolling/\n\nEU parliament blocks AI features\nhttps://www.politico.eu/article/eu-parliament-blocks-ai-features-over-cyber-privacy-fears/\n\nAsteroidOS brings Linux to your smartwatch\nhttps://itsfoss.com/news/asteroidos-2-release/\n\nProject aims to bring NetBSD utilities to Linux\nhttps://linuxiac.com/netbase-brings-netbsd-userland-utilities-to-linux/\n\n#linuxdesktop #linuxdistro #technews", "GNOME 50 and GNOME OS progress, KDE debunks systemD FUD - Linux weekly News", "IZStNPWpE_0", 1540, false, "https://www.youtube.com/watch?v=IZStNPWpE_0", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022100_GNOME 50 and GNOME OS progress, KDE debunks systemD FUD - Linux weekly News.mp4", false, 43, ~U[2026-02-21 09:44:06Z]] 05:31:31.291 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=18.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:31:31.300 [debug] QUERY OK source="media_items" db=8.5ms idle=18.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-20 08:41:49Z], 43] 05:31:31.305 [debug] QUERY OK source="media_items" db=3.6ms queue=0.1ms idle=18.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 Nextcloud Hub 26 brings big updates\n03:26 Project aims to bring NetBSD utilities to Linux\n05:17 Study says AI at work brings no real benefits\n\nLinks:\n\nNextcloud Hub 26 brings big updates\nhttps://nextcloud.com/blog/nextcloud-hub26-winter/\n\nProject aims to bring NetBSD utilities to Linux\nhttps://linuxiac.com/netbase-brings-netbsd-userland-utilities-to-linux/\n\nStudy says AI at work brings no real benefits\nhttps://www.techradar.com/pro/is-ai-at-work-actually-helping-major-survey-claims-many-firms-see-no-obvious-benefit-despite-billions-in-investment", "Daily Linux News - S03E35 - Big Nextcloud update, NetBSD tools for Linux", "4f66c519-498e-4559-b7ac-762810bca6b2", "eZ9pQVgiRT4", 476, false, "https://www.youtube.com/watch?v=eZ9pQVgiRT4", 10, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022000_Daily Linux News - S03E35 - Big Nextcloud update, NetBSD tools for Linux.NA", false, false, false, 43, [], 98, ~U[2026-02-20 08:41:49Z], ~U[2026-03-01 11:31:31Z], ~U[2026-03-01 11:31:31Z], "👕 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 Nextcloud Hub 26 brings big updates\n03:26 Project aims to bring NetBSD utilities to Linux\n05:17 Study says AI at work brings no real benefits\n\nLinks:\n\nNextcloud Hub 26 brings big updates\nhttps://nextcloud.com/blog/nextcloud-hub26-winter/\n\nProject aims to bring NetBSD utilities to Linux\nhttps://linuxiac.com/netbase-brings-netbsd-userland-utilities-to-linux/\n\nStudy says AI at work brings no real benefits\nhttps://www.techradar.com/pro/is-ai-at-work-actually-helping-major-survey-claims-many-firms-see-no-obvious-benefit-despite-billions-in-investment", "Daily Linux News - S03E35 - Big Nextcloud update, NetBSD tools for Linux", "eZ9pQVgiRT4", 476, false, "https://www.youtube.com/watch?v=eZ9pQVgiRT4", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e022000_Daily Linux News - S03E35 - Big Nextcloud update, NetBSD tools for Linux.NA", false, 43, ~U[2026-02-20 08:41:49Z]] 05:31:31.306 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 05:31:31.315 [debug] QUERY OK source="media_items" db=8.5ms idle=17.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-19 10:25:23Z], 43] 05:31:31.319 [debug] QUERY OK source="media_items" db=2.4ms idle=24.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\n\nTimestamps:\n00:00 Intro\n00:05 GNOME OS nearing stable release\n04:06 Godot getting swarmed by AI slop\n07:20 AsteroidOS brings Linux to your smartwatch\n\nLinks:\nGNOME OS nearing stable release\nhttps://blogs.gnome.org/adrianvovk/2026/02/18/gnome-os-hackfest-fosdem-2026/\n\nGodot getting swarmed by AI slop\nhttps://www.gamingonlinux.com/2026/02/godot-engine-suffering-from-lots-of-ai-slop-code-submissions/\n\nAsteroidOS brings Linux to your smartwatch\nhttps://itsfoss.com/news/asteroidos-2-release/", "Daily Linux News - S03E34 - GNOME OS making progress, AI slop submissions, Linux on smartwatches", "b33c95a9-6cdf-4406-903b-06be04d0efa8", "YkeNdTfnNko", 600, false, "https://www.youtube.com/watch?v=YkeNdTfnNko", 11, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021900_Daily Linux News - S03E34 - GNOME OS making progress, AI slop submissions, Linux on smartwatches.NA", false, false, false, 43, [], 98, ~U[2026-02-19 10:25:23Z], ~U[2026-03-01 11:31:31Z], ~U[2026-03-01 11:31:31Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\n\nTimestamps:\n00:00 Intro\n00:05 GNOME OS nearing stable release\n04:06 Godot getting swarmed by AI slop\n07:20 AsteroidOS brings Linux to your smartwatch\n\nLinks:\nGNOME OS nearing stable release\nhttps://blogs.gnome.org/adrianvovk/2026/02/18/gnome-os-hackfest-fosdem-2026/\n\nGodot getting swarmed by AI slop\nhttps://www.gamingonlinux.com/2026/02/godot-engine-suffering-from-lots-of-ai-slop-code-submissions/\n\nAsteroidOS brings Linux to your smartwatch\nhttps://itsfoss.com/news/asteroidos-2-release/", "Daily Linux News - S03E34 - GNOME OS making progress, AI slop submissions, Linux on smartwatches", "YkeNdTfnNko", 600, false, "https://www.youtube.com/watch?v=YkeNdTfnNko", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021900_Daily Linux News - S03E34 - GNOME OS making progress, AI slop submissions, Linux on smartwatches.NA", false, 43, ~U[2026-02-19 10:25:23Z]] 05:31:31.320 [debug] QUERY OK source="sources" db=1.2ms queue=0.2ms idle=18.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] 05:31:31.330 [debug] QUERY OK source="media_items" db=8.9ms idle=15.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-18 09:54:40Z], 43] 05:31:31.335 [debug] QUERY OK source="media_items" db=3.6ms idle=23.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 Plasma 6.6 released\n03:53 Valve says parts shortages are the cause of Deck stock issues\n06:00 Study says people are ready to move away from big tech\n08:26 EU parliament blocks AI features\n11:54 Cosmic gets another update\n\nLinks:\n\nPlasma 6.6 released\nhttps://kde.org/announcements/plasma/6/6.6.0/\n\nValve says parts shortages are the cause of Deck stock issues\nhttps://www.techradar.com/gaming/steam-deck/valve-confirms-steam-deck-oled-stock-issues-are-due-to-memory-and-storage-shortages-heres-what-it-means-for-the-steam-machine\n\nStudy says people are ready to move away from big tech\nhttps://www.techradar.com/vpn/vpn-privacy-security/brits-are-turning-their-backs-on-us-big-tech-and-looking-to-europe-for-privacy\n\nEU parliament blocks AI features\nhttps://www.politico.eu/article/eu-parliament-blocks-ai-features-over-cyber-privacy-fears/\n\nCosmic gets another update\nhttps://github.com/pop-os/cosmic-epoch/releases/tag/epoch-1.0.7", "Daily Linux News - S03E33 - Plasma 6.6, Cosmic update, EU parliament drops AI", "8e520cdb-ebf4-4251-a405-dd9b408833d1", "ZljDp4U9f_s", 810, false, "https://www.youtube.com/watch?v=ZljDp4U9f_s", 12, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021800_Daily Linux News - S03E33 - Plasma 6.6, Cosmic update, EU parliament drops AI.NA", false, false, false, 43, [], 98, ~U[2026-02-18 09:54:40Z], ~U[2026-03-01 11:31:31Z], ~U[2026-03-01 11:31:31Z], "👕 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 Plasma 6.6 released\n03:53 Valve says parts shortages are the cause of Deck stock issues\n06:00 Study says people are ready to move away from big tech\n08:26 EU parliament blocks AI features\n11:54 Cosmic gets another update\n\nLinks:\n\nPlasma 6.6 released\nhttps://kde.org/announcements/plasma/6/6.6.0/\n\nValve says parts shortages are the cause of Deck stock issues\nhttps://www.techradar.com/gaming/steam-deck/valve-confirms-steam-deck-oled-stock-issues-are-due-to-memory-and-storage-shortages-heres-what-it-means-for-the-steam-machine\n\nStudy says people are ready to move away from big tech\nhttps://www.techradar.com/vpn/vpn-privacy-security/brits-are-turning-their-backs-on-us-big-tech-and-looking-to-europe-for-privacy\n\nEU parliament blocks AI features\nhttps://www.politico.eu/article/eu-parliament-blocks-ai-features-over-cyber-privacy-fears/\n\nCosmic gets another update\nhttps://github.com/pop-os/cosmic-epoch/releases/tag/epoch-1.0.7", "Daily Linux News - S03E33 - Plasma 6.6, Cosmic update, EU parliament drops AI", "ZljDp4U9f_s", 810, false, "https://www.youtube.com/watch?v=ZljDp4U9f_s", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021800_Daily Linux News - S03E33 - Plasma 6.6, Cosmic update, EU parliament drops AI.NA", false, 43, ~U[2026-02-18 09:54:40Z]] 05:31:31.337 [debug] QUERY OK source="sources" db=1.6ms idle=19.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 05:31:31.347 [debug] QUERY OK source="media_items" db=10.1ms queue=0.1ms idle=18.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-17 12:57:28Z], 43] 05:31:31.352 [debug] QUERY OK source="media_items" db=3.0ms queue=0.1ms idle=27.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 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:29 Sponsor: Proton Mail\n01:33 Plasma Login Manager\n03:13 Desktop: Look & Feel\n06:48 Under The Hood\n08:36 Window Manager & Wayland\n10:25 Widgets & other desktop changes\n14:15 System Monitor\n15:21 Spectacle\n16:17 Discover\n17:28 Settings\n20:23 Sponsor: Tuxedo Computers\n\n\n\n#linuxdesktop #linuxdistro #kdeplasma", "KDE Plasma 6.6: a massive update !", "f26548bc-52ed-4504-bce8-4e57a8c8701c", "F0LgY39WTGQ", 1310, false, "https://www.youtube.com/watch?v=F0LgY39WTGQ", 13, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021700_KDE Plasma 6.6: a massive update !.mp4", false, false, false, 43, [], 97, ~U[2026-02-17 12:57:28Z], ~U[2026-03-01 11:31:31Z], ~U[2026-03-01 11:31:31Z], "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:29 Sponsor: Proton Mail\n01:33 Plasma Login Manager\n03:13 Desktop: Look & Feel\n06:48 Under The Hood\n08:36 Window Manager & Wayland\n10:25 Widgets & other desktop changes\n14:15 System Monitor\n15:21 Spectacle\n16:17 Discover\n17:28 Settings\n20:23 Sponsor: Tuxedo Computers\n\n\n\n#linuxdesktop #linuxdistro #kdeplasma", "KDE Plasma 6.6: a massive update !", "F0LgY39WTGQ", 1310, false, "https://www.youtube.com/watch?v=F0LgY39WTGQ", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021700_KDE Plasma 6.6: a massive update !.mp4", false, 43, ~U[2026-02-17 12:57:28Z]] 05:31:31.354 [debug] QUERY OK source="sources" db=1.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 05:31:31.364 [debug] QUERY OK source="media_items" db=9.3ms queue=0.1ms idle=20.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-17 08:38:32Z], 43] 05:31:31.368 [debug] QUERY OK source="media_items" db=3.2ms idle=27.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 KDE debunks FUD around systemD\n04:06 Budgie 11 gearing up for first preview\n06:19 Microsoft starts Trusted Tech Alliance\n\n\nLinks:\nKDE debunks FUD around systemD\nhttps://www.reddit.com/r/kde/comments/1r68jmi/a_quick_antifud_faq_to_debunk_the_kde_is_forcing/\n\nBudgie 11 gearing up for first preview\nhttps://buddiesofbudgie.org/blog/chirp-5\n\nMicrosoft starts Trusted Tech Alliance\nhttps://www.techradar.com/pro/microsoft-launches-trusted-tech-alliance-to-try-and-restore-some-faith-in-big-tech", "Daily Linux News - S03E32 - Plasma debunks systemD FUD, Microsoft launches Trusted Tech Alliance", "b2ce3f93-76dd-4588-a087-85e3a353716c", "ia1poo4kgjY", 534, false, "https://www.youtube.com/watch?v=ia1poo4kgjY", 14, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021700_Daily Linux News - S03E32 - Plasma debunks systemD FUD, Microsoft launches Trusted Tech Alliance.NA", false, false, false, 43, [], 97, ~U[2026-02-17 08:38:32Z], ~U[2026-03-01 11:31:31Z], ~U[2026-03-01 11:31:31Z], "👕 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 KDE debunks FUD around systemD\n04:06 Budgie 11 gearing up for first preview\n06:19 Microsoft starts Trusted Tech Alliance\n\n\nLinks:\nKDE debunks FUD around systemD\nhttps://www.reddit.com/r/kde/comments/1r68jmi/a_quick_antifud_faq_to_debunk_the_kde_is_forcing/\n\nBudgie 11 gearing up for first preview\nhttps://buddiesofbudgie.org/blog/chirp-5\n\nMicrosoft starts Trusted Tech Alliance\nhttps://www.techradar.com/pro/microsoft-launches-trusted-tech-alliance-to-try-and-restore-some-faith-in-big-tech", "Daily Linux News - S03E32 - Plasma debunks systemD FUD, Microsoft launches Trusted Tech Alliance", "ia1poo4kgjY", 534, false, "https://www.youtube.com/watch?v=ia1poo4kgjY", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021700_Daily Linux News - S03E32 - Plasma debunks systemD FUD, Microsoft launches Trusted Tech Alliance.NA", false, 43, ~U[2026-02-17 08:38:32Z]] 05:31:31.370 [debug] QUERY OK source="sources" db=1.5ms queue=0.1ms idle=21.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:31:31.381 [debug] QUERY OK source="media_items" db=10.3ms idle=19.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-16 10:36:32Z], 43] 05:31:31.385 [debug] QUERY OK source="media_items" db=2.7ms queue=0.1ms idle=28.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 Murena Maps, new private maps for Android \n03:06 GNOME 50 got a massive beta\n06:57 EU takes aim at infinite scrolling\n\n\nLinks:\n\nMurena Maps, new private maps for Android \nhttps://murena.com/meet-murena-maps/\n\nGNOME 50 got a massive beta\nhttps://9to5linux.com/gnome-50-desktop-environment-enters-public-beta-testing-with-more-new-features\n\nEU takes aim at infinite scrolling\nhttps://www.politico.eu/article/tiktok-meta-facebook-instagram-brussels-kill-infinite-scrolling/", "Daily Linux News - S03E31 - EU takes aim at infinite scroll, GNOME 50 beta", "efa01397-6d4f-40e0-98f3-18aceff7ada7", "RzBuqvd_zD4", 754, false, "https://www.youtube.com/watch?v=RzBuqvd_zD4", 15, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021600_Daily Linux News - S03E31 - EU takes aim at infinite scroll, GNOME 50 beta.NA", false, false, false, 43, [], 97, ~U[2026-02-16 10:36:32Z], ~U[2026-03-01 11:31:31Z], ~U[2026-03-01 11:31:31Z], "👕 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 Murena Maps, new private maps for Android \n03:06 GNOME 50 got a massive beta\n06:57 EU takes aim at infinite scrolling\n\n\nLinks:\n\nMurena Maps, new private maps for Android \nhttps://murena.com/meet-murena-maps/\n\nGNOME 50 got a massive beta\nhttps://9to5linux.com/gnome-50-desktop-environment-enters-public-beta-testing-with-more-new-features\n\nEU takes aim at infinite scrolling\nhttps://www.politico.eu/article/tiktok-meta-facebook-instagram-brussels-kill-infinite-scrolling/", "Daily Linux News - S03E31 - EU takes aim at infinite scroll, GNOME 50 beta", "RzBuqvd_zD4", 754, false, "https://www.youtube.com/watch?v=RzBuqvd_zD4", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021600_Daily Linux News - S03E31 - EU takes aim at infinite scroll, GNOME 50 beta.NA", false, 43, ~U[2026-02-16 10:36:32Z]] 05:31:31.387 [debug] QUERY OK source="sources" db=1.6ms idle=21.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] 05:31:31.397 [debug] QUERY OK source="media_items" db=9.7ms idle=19.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-16 08:25:17Z], 43] 05:31:31.401 [debug] QUERY OK source="media_items" db=2.4ms queue=0.1ms idle=27.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:41 Probably fixing my NVMe drive issue\n03:32 Using my Synology NAS a bit more\n15:06 A few other personal things", "Patroncast S06E07 - Using the NAS for collaborative work & other unrelated things", "54fd061e-d443-4fe4-b962-108e780abd22", "ld6S5z9Xbyw", 1358, false, "https://www.youtube.com/watch?v=ld6S5z9Xbyw", 16, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021600_Patroncast S06E07 - Using the NAS for collaborative work & other unrelated things.NA", false, false, false, 43, [], 97, ~U[2026-02-16 08:25:17Z], ~U[2026-03-01 11:31:31Z], ~U[2026-03-01 11:31:31Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:41 Probably fixing my NVMe drive issue\n03:32 Using my Synology NAS a bit more\n15:06 A few other personal things", "Patroncast S06E07 - Using the NAS for collaborative work & other unrelated things", "ld6S5z9Xbyw", 1358, false, "https://www.youtube.com/watch?v=ld6S5z9Xbyw", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021600_Patroncast S06E07 - Using the NAS for collaborative work & other unrelated things.NA", false, 43, ~U[2026-02-16 08:25:17Z]] 05:31:31.403 [debug] QUERY OK source="sources" db=1.7ms queue=0.1ms idle=20.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] 05:31:31.418 [debug] QUERY OK source="media_items" db=13.7ms queue=0.1ms idle=19.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-13 13:11:35Z], 43] 05:31:31.430 [debug] QUERY OK source="media_items" db=9.8ms queue=0.1ms idle=31.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" ["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\nTimestamps:\n00:00 Intro\n00:44 Sponsor: SquareSpace\n02:00 Mint thinks about making fewer releases\n05:26 Discord facing backlash over privacy and ID checks\n09:07 Linux kernel 6.19 released\n11:37 Machine Learning proposed as a kernel recommendations tool\n13:52 Ubuntu drops their repo management GUI\n15:45 KDE Linux makes big progress with a beta\n18:45 Experimental Wayland protocol for multi windows app\n20:54 Steam Deck sold out in North America and Asia\n22:56 New system proposed to fight AI slop contributions\n\n\n\nLinks:\n\nMint thinks about making fewer releases\nhttps://blog.linuxmint.com/?p=4991\n\nDiscord facing backlash over privacy and ID checks\nhttps://www.techradar.com/computing/social-media/discord-tries-to-share-clarity-on-disastrous-age-verification-plans-amid-mass-cancellations-but-safe-to-say-its-not-helping-its-getting-thoroughly-community-noted\n\nLinux kernel 6.19 released\nhttps://linuxiac.com/linux-kernel-6-19-released/\nhttps://www.omgubuntu.co.uk/2026/02/linux-6-19-kernel-features-amd-performance\n\nMachine Learning proposed as a kernel recommendations tool\nhttps://lore.kernel.org/lkml/47d21a6821c4b2d085f7b97bcdaa205bfcb0e0ad.camel@ibm.com/\n\nUbuntu drops their repo management GUI\nhttps://www.omgubuntu.co.uk/2026/02/ubuntu-26-04-drops-software-and-updates-gui\n\nKDE Linux makes big progress with a beta\nhttps://pointieststick.com/2026/02/06/busy-months-in-kde-linux/\n\nExperimental Wayland protocol for multi windows app\nhttps://www.phoronix.com/news/Wayland-Experimental-Zones\n\nSteam Deck sold out in North America and Asia\nhttps://www.gamingonlinux.com/2026/02/steam-deck-completely-out-of-stock-in-the-us-canada-and-asia/\n\nNew system proposed to fight AI slop contributions\nhttps://github.com/mitchellh/vouch?ref=itsfoss.com\n\n#linuxdesktop #linuxdistro #technews", "New kernel boosts Linux performance, Mint makes big changes, Discord Backlash - Linux Weekly News", "ae454e9a-efe2-410a-85f1-2cf34dbf9167", "9ymhN8q3_d0", 1714, false, "https://www.youtube.com/watch?v=9ymhN8q3_d0", 17, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021300_New kernel boosts Linux performance, Mint makes big changes, Discord Backlash - Linux Weekly News.mp4", false, false, false, 43, [], 97, ~U[2026-02-13 13:11:35Z], ~U[2026-03-01 11:31:31Z], ~U[2026-03-01 11:31:31Z], "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\nTimestamps:\n00:00 Intro\n00:44 Sponsor: SquareSpace\n02:00 Mint thinks about making fewer releases\n05:26 Discord facing backlash over privacy and ID checks\n09:07 Linux kernel 6.19 released\n11:37 Machine Learning proposed as a kernel recommendations tool\n13:52 Ubuntu drops their repo management GUI\n15:45 KDE Linux makes big progress with a beta\n18:45 Experimental Wayland protocol for multi windows app\n20:54 Steam Deck sold out in North America and Asia\n22:56 New system proposed to fight AI slop contributions\n\n\n\nLinks:\n\nMint thinks about making fewer releases\nhttps://blog.linuxmint.com/?p=4991\n\nDiscord facing backlash over privacy and ID checks\nhttps://www.techradar.com/computing/social-media/discord-tries-to-share-clarity-on-disastrous-age-verification-plans-amid-mass-cancellations-but-safe-to-say-its-not-helping-its-getting-thoroughly-community-noted\n\nLinux kernel 6.19 released\nhttps://linuxiac.com/linux-kernel-6-19-released/\nhttps://www.omgubuntu.co.uk/2026/02/linux-6-19-kernel-features-amd-performance\n\nMachine Learning proposed as a kernel recommendations tool\nhttps://lore.kernel.org/lkml/47d21a6821c4b2d085f7b97bcdaa205bfcb0e0ad.camel@ibm.com/\n\nUbuntu drops their repo management GUI\nhttps://www.omgubuntu.co.uk/2026/02/ubuntu-26-04-drops-software-and-updates-gui\n\nKDE Linux makes big progress with a beta\nhttps://pointieststick.com/2026/02/06/busy-months-in-kde-linux/\n\nExperimental Wayland protocol for multi windows app\nhttps://www.phoronix.com/news/Wayland-Experimental-Zones\n\nSteam Deck sold out in North America and Asia\nhttps://www.gamingonlinux.com/2026/02/steam-deck-completely-out-of-stock-in-the-us-canada-and-asia/\n\nNew system proposed to fight AI slop contributions\nhttps://github.com/mitchellh/vouch?ref=itsfoss.com\n\n#linuxdesktop #linuxdistro #technews", "New kernel boosts Linux performance, Mint makes big changes, Discord Backlash - Linux Weekly News", "9ymhN8q3_d0", 1714, false, "https://www.youtube.com/watch?v=9ymhN8q3_d0", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021300_New kernel boosts Linux performance, Mint makes big changes, Discord Backlash - Linux Weekly News.mp4", false, 43, ~U[2026-02-13 13:11:35Z]] 05:31:31.433 [debug] QUERY OK source="sources" db=1.6ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 05:31:31.444 [debug] QUERY OK source="media_items" db=10.3ms queue=0.1ms idle=32.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-13 09:00:54Z], 43] 05:31:31.448 [debug] QUERY OK source="media_items" db=3.1ms idle=41.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 Steam Deck sold out in North America and Asia\n03:27 Fake AI extensions stole 300K users' credentials and emails\n06:40 New system proposed to fight AI slop contributions\n\nLinks:\n\nSteam Deck sold out in North America and Asia\nhttps://www.gamingonlinux.com/2026/02/steam-deck-completely-out-of-stock-in-the-us-canada-and-asia/\n\nFake AI extensions stole 300K users' credentials and emails\nhttps://www.bleepingcomputer.com/news/security/fake-ai-chrome-extensions-with-300k-users-steal-credentials-emails/\n\nNew system proposed to fight AI slop contributions\nhttps://itsfoss.com/news/mitchell-hashimoto-vouch/", "Daily Linux News - S03E30 - New system to fight AI slop in open source, Steam Deck is sold out", "66814f47-87f3-425f-ab83-634128d95d5f", "HEJTI2vWgZM", 721, false, "https://www.youtube.com/watch?v=HEJTI2vWgZM", 18, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021300_Daily Linux News - S03E30 - New system to fight AI slop in open source, Steam Deck is sold out.NA", false, false, false, 43, [], 97, ~U[2026-02-13 09:00:54Z], ~U[2026-03-01 11:31:31Z], ~U[2026-03-01 11:31:31Z], "👕 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 Deck sold out in North America and Asia\n03:27 Fake AI extensions stole 300K users' credentials and emails\n06:40 New system proposed to fight AI slop contributions\n\nLinks:\n\nSteam Deck sold out in North America and Asia\nhttps://www.gamingonlinux.com/2026/02/steam-deck-completely-out-of-stock-in-the-us-canada-and-asia/\n\nFake AI extensions stole 300K users' credentials and emails\nhttps://www.bleepingcomputer.com/news/security/fake-ai-chrome-extensions-with-300k-users-steal-credentials-emails/\n\nNew system proposed to fight AI slop contributions\nhttps://itsfoss.com/news/mitchell-hashimoto-vouch/", "Daily Linux News - S03E30 - New system to fight AI slop in open source, Steam Deck is sold out", "HEJTI2vWgZM", 721, false, "https://www.youtube.com/watch?v=HEJTI2vWgZM", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021300_Daily Linux News - S03E30 - New system to fight AI slop in open source, Steam Deck is sold out.NA", false, 43, ~U[2026-02-13 09:00:54Z]] 05:31:31.450 [debug] QUERY OK source="sources" db=1.4ms queue=0.1ms 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" = ?) [43] 05:31:31.460 [debug] QUERY OK source="media_items" db=9.9ms idle=21.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-12 08:24:07Z], 43] 05:31:31.465 [debug] QUERY OK source="media_items" db=3.3ms queue=0.1ms idle=28.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 Mesa 26 released with raytracing improvements\n02:07 Mint thinks about making fewer releases\n07:52 Discord facing backlash over privacy and ID checks\n\n\nLinks:\n\nMesa 26 released with raytracing improvements\nhttps://9to5linux.com/mesa-26-0-open-source-graphics-stack-officially-released-heres-whats-new\n\nMint thinks about making fewer releases\nhttps://blog.linuxmint.com/?p=4991\n\nDiscord facing backlash over privacy and ID checks\nhttps://www.techradar.com/computing/social-media/discord-tries-to-share-clarity-on-disastrous-age-verification-plans-amid-mass-cancellations-but-safe-to-say-its-not-helping-its-getting-thoroughly-community-noted", "Daily Linux News - S03E29 - Mint looking at longer release times, Discord backlash", "dae5e922-cd5c-4367-abf9-5a0e7158214c", "tJnG3Zeuyb8", 766, false, "https://www.youtube.com/watch?v=tJnG3Zeuyb8", 19, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021200_Daily Linux News - S03E29 - Mint looking at longer release times, Discord backlash.NA", false, false, false, 43, [], 98, ~U[2026-02-12 08:24:07Z], ~U[2026-03-01 11:31:31Z], ~U[2026-03-01 11:31:31Z], "👕 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 Mesa 26 released with raytracing improvements\n02:07 Mint thinks about making fewer releases\n07:52 Discord facing backlash over privacy and ID checks\n\n\nLinks:\n\nMesa 26 released with raytracing improvements\nhttps://9to5linux.com/mesa-26-0-open-source-graphics-stack-officially-released-heres-whats-new\n\nMint thinks about making fewer releases\nhttps://blog.linuxmint.com/?p=4991\n\nDiscord facing backlash over privacy and ID checks\nhttps://www.techradar.com/computing/social-media/discord-tries-to-share-clarity-on-disastrous-age-verification-plans-amid-mass-cancellations-but-safe-to-say-its-not-helping-its-getting-thoroughly-community-noted", "Daily Linux News - S03E29 - Mint looking at longer release times, Discord backlash", "tJnG3Zeuyb8", 766, false, "https://www.youtube.com/watch?v=tJnG3Zeuyb8", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021200_Daily Linux News - S03E29 - Mint looking at longer release times, Discord backlash.NA", false, 43, ~U[2026-02-12 08:24:07Z]] 05:31:31.467 [debug] QUERY OK source="sources" db=1.6ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 05:31:31.479 [debug] QUERY OK source="media_items" db=11.1ms idle=20.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-11 09:05:23Z], 43] 05:31:31.483 [debug] QUERY OK source="media_items" db=3.1ms queue=0.1ms idle=29.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 Experimental Wayland protocol for multi windows app\n04:01 AppImage Manager adds mac-like app installs\n06:00 Europe starting to spend big for sovereignty\n\nLinks:\nExperimental Wayland protocol for multi windows app\nhttps://www.phoronix.com/news/Wayland-Experimental-Zones\n\nAppImage Manager adds mac-like app installs\nhttps://itsfoss.com/appmanager/\n\nEurope starting to spend big for sovereignty\nhttps://www.techradar.com/pro/europe-is-going-all-in-on-sovereign-cloud-investment-to-triple-by-2027", "Daily Linux News - S03E28 - New protocol for Wayland to handle multiwindow apps", "6babdaf1-9905-4763-94e0-8a90d6ff3be8", "gNkAQFTSIyQ", 534, false, "https://www.youtube.com/watch?v=gNkAQFTSIyQ", 20, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021100_Daily Linux News - S03E28 - New protocol for Wayland to handle multiwindow apps.NA", false, false, false, 43, [], 98, ~U[2026-02-11 09:05:23Z], ~U[2026-03-01 11:31:31Z], ~U[2026-03-01 11:31:31Z], "👕 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 Experimental Wayland protocol for multi windows app\n04:01 AppImage Manager adds mac-like app installs\n06:00 Europe starting to spend big for sovereignty\n\nLinks:\nExperimental Wayland protocol for multi windows app\nhttps://www.phoronix.com/news/Wayland-Experimental-Zones\n\nAppImage Manager adds mac-like app installs\nhttps://itsfoss.com/appmanager/\n\nEurope starting to spend big for sovereignty\nhttps://www.techradar.com/pro/europe-is-going-all-in-on-sovereign-cloud-investment-to-triple-by-2027", "Daily Linux News - S03E28 - New protocol for Wayland to handle multiwindow apps", "gNkAQFTSIyQ", 534, false, "https://www.youtube.com/watch?v=gNkAQFTSIyQ", "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2026/s2026e021100_Daily Linux News - S03E28 - New protocol for Wayland to handle multiwindow apps.NA", false, 43, ~U[2026-02-11 09:05:23Z]] 05:31:31.485 [debug] QUERY OK source="sources" db=1.4ms queue=0.1ms idle=23.3ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-01 11:31:31Z], ~U[2026-03-01 11:31:31Z], 43] 05:31:31.501 [debug] QUERY OK source="media_items" db=15.0ms idle=21.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] 05:31:31.934 [debug] QUERY OK source="media_items" db=3.0ms idle=9.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")))) [43] 05:31:31.935 [debug] QUERY OK source="media_items" db=0.7ms idle=10.2ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [43] 05:31:31.939 [debug] QUERY OK source="tasks" db=0.8ms idle=7.7ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189115, 43, ~U[2026-03-01 11:31:31Z], ~U[2026-03-01 11:31:31Z]] 05:31:31.941 [info] {"args":{"id":43},"id":189026,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":47258306,"event":"job:stop","queue_time":65171564,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 05:31:40.816 [info] {"source":"oban","duration":13599,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:31:44.320 [info] {"args":{"id":2281148},"id":189113,"meta":{},"system_time":1772364704320010250,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":2,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:31:44.320 [debug] QUERY OK source="media_items" db=0.4ms idle=805.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" = ?) [2281148] 05:31:44.321 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:31:44.321 [debug] QUERY OK source="sources" db=0.3ms idle=806.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] 05:31:44.322 [debug] QUERY OK source="media_profiles" db=0.9ms idle=807.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] 05:31:44.323 [debug] QUERY OK source="media_items" db=0.4ms 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 [2281148] 05:31:44.325 [debug] QUERY OK source="media_metadata" db=0.1ms idle=5.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" = ?) [2281148] 05:31:44.325 [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] 05:31:44.325 [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 [] 05:31:44.326 [debug] QUERY OK source="settings" db=0.1ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:31:44.326 [debug] Running yt-dlp command for action: get_downloadable_status 05:31:44.328 [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 [] 05:31:44.328 [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 [] 05:31:44.328 [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 [] 05:31:44.328 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RzBuqvd_zD4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/5d/71/5d71a5e388863444391a9c3c6bf447a48a5acf883dc90877ea42d81bc9352112.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:31:47.380 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RzBuqvd_zD4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/5d/71/5d71a5e388863444391a9c3c6bf447a48a5acf883dc90877ea42d81bc9352112.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] RzBuqvd_zD4: Join this channel to get access to members-only content like this video, and other exclusive perks. 05:31:47.381 [error] yt-dlp download error for media item #2281148: "ERROR: [youtube] RzBuqvd_zD4: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 05:31:47.382 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":2281148},"id":189113,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3061293,"event":"job:exception","queue_time":57736,"attempt":2,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:32:00.099 [info] {"source":"oban","duration":273,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:32:07.366 [info] {"args":{"id":2281148},"id":189113,"meta":{},"system_time":1772364727366033662,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":3,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:32:07.366 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=1851.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" = ?) [2281148] 05:32:07.367 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:32:07.367 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1010.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] 05:32:07.368 [debug] QUERY OK source="media_profiles" db=0.2ms idle=853.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] 05:32:07.369 [debug] QUERY OK source="media_items" db=0.4ms idle=9.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [2281148] 05:32:07.370 [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" = ?) [2281148] 05:32:07.370 [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] 05:32:07.371 [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 [] 05:32:07.371 [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 [] 05:32:07.372 [debug] Running yt-dlp command for action: get_downloadable_status 05:32:07.373 [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 [] 05:32:07.374 [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 [] 05:32:07.374 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:32:07.374 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RzBuqvd_zD4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/55/b4/55b4b1a97c4c83c154d674269fc9e7fa7f92a87c6aa0027147ba37880eed2870.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:32:10.285 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RzBuqvd_zD4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/55/b4/55b4b1a97c4c83c154d674269fc9e7fa7f92a87c6aa0027147ba37880eed2870.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] RzBuqvd_zD4: Join this channel to get access to members-only content like this video, and other exclusive perks. 05:32:10.285 [error] yt-dlp download error for media item #2281148: "ERROR: [youtube] RzBuqvd_zD4: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 05:32:10.286 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":2281148},"id":189113,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2919536,"event":"job:exception","queue_time":982994,"attempt":3,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:32:10.829 [info] {"source":"oban","duration":13351,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:32:34.416 [info] {"args":{"id":2281148},"id":189113,"meta":{},"system_time":1772364754416098537,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":4,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:32:34.416 [debug] QUERY OK source="media_items" db=0.3ms idle=1901.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" = ?) [2281148] 05:32:34.417 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:32:34.417 [debug] QUERY OK source="sources" db=0.3ms idle=1010.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] 05:32:34.418 [debug] QUERY OK source="media_profiles" db=0.2ms idle=903.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] 05:32:34.419 [debug] QUERY OK source="media_items" db=0.3ms idle=9.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 [2281148] 05:32:34.420 [debug] QUERY OK source="media_metadata" db=0.1ms idle=4.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" = ?) [2281148] 05:32:34.421 [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] 05:32:34.421 [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 [] 05:32:34.421 [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 [] 05:32:34.422 [debug] Running yt-dlp command for action: get_downloadable_status 05:32:34.423 [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 [] 05:32:34.423 [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 [] 05:32:34.423 [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 [] 05:32:34.423 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RzBuqvd_zD4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/dc/c6/dcc6c0e36a044e03d6ef81ff039a28098ee91ce043a44a4394e009a03a003cd8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:32:37.224 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RzBuqvd_zD4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/dc/c6/dcc6c0e36a044e03d6ef81ff039a28098ee91ce043a44a4394e009a03a003cd8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] RzBuqvd_zD4: Join this channel to get access to members-only content like this video, and other exclusive perks. 05:32:37.224 [error] yt-dlp download error for media item #2281148: "ERROR: [youtube] RzBuqvd_zD4: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 05:32:37.225 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":2281148},"id":189113,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2808740,"event":"job:exception","queue_time":128702,"attempt":4,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:32:40.842 [info] {"source":"oban","duration":11989,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:33:00.100 [info] {"source":"oban","duration":250,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:33:10.487 [info] {"args":{"id":2281148},"id":189113,"meta":{},"system_time":1772364790487596755,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":5,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:33:10.488 [debug] QUERY OK source="media_items" db=0.9ms idle=1009.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" = ?) [2281148] 05:33:10.489 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:33:10.489 [debug] QUERY OK source="sources" db=0.3ms idle=974.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:33:10.490 [debug] QUERY OK source="media_profiles" db=0.3ms idle=975.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] 05:33:10.491 [debug] QUERY OK source="media_items" db=0.4ms idle=9.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [2281148] 05:33:10.492 [debug] QUERY OK source="media_metadata" db=0.1ms idle=5.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" = ?) [2281148] 05:33:10.493 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:33:10.493 [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 [] 05:33:10.494 [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 [] 05:33:10.494 [debug] Running yt-dlp command for action: get_downloadable_status 05:33:10.495 [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 [] 05:33:10.495 [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 [] 05:33:10.495 [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 [] 05:33:10.495 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RzBuqvd_zD4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/15/b1/15b18b292e86ecd5219b95fd8409c5c2e17a2b07a42e95dffbeb81fe483030a7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:33:10.855 [info] {"source":"oban","duration":12457,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:33:13.109 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RzBuqvd_zD4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/15/b1/15b18b292e86ecd5219b95fd8409c5c2e17a2b07a42e95dffbeb81fe483030a7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] RzBuqvd_zD4: Join this channel to get access to members-only content like this video, and other exclusive perks. 05:33:13.109 [error] yt-dlp download error for media item #2281148: "ERROR: [youtube] RzBuqvd_zD4: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 05:33:13.110 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":2281148},"id":189113,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2622142,"event":"job:exception","queue_time":261422,"attempt":5,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:33:40.868 [info] {"source":"oban","duration":11757,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:34:00.101 [info] {"source":"oban","duration":261,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:34:02.590 [info] {"args":{"id":2281148},"id":189113,"meta":{},"system_time":1772364842590752105,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":6,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:34:02.591 [debug] QUERY OK source="media_items" db=0.3ms 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 WHERE (m0."id" = ?) [2281148] 05:34:02.591 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:34:02.592 [debug] QUERY OK source="sources" db=0.3ms idle=77.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 05:34:02.593 [debug] QUERY OK source="media_profiles" db=1.0ms idle=77.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] 05:34:02.594 [debug] QUERY OK source="media_items" db=0.4ms idle=10.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 [2281148] 05:34:02.595 [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" = ?) [2281148] 05:34:02.595 [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] 05:34:02.596 [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 [] 05:34:02.596 [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 [] 05:34:02.596 [debug] Running yt-dlp command for action: get_downloadable_status 05:34:02.598 [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 [] 05:34:02.598 [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 [] 05:34:02.599 [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 [] 05:34:02.599 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RzBuqvd_zD4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/fb/b0/fbb0986f9dee6cbc3ee3e9a65900f3ece86e159cc0b4cf3352d2a749bc754a8d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:34:05.891 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RzBuqvd_zD4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/fb/b0/fbb0986f9dee6cbc3ee3e9a65900f3ece86e159cc0b4cf3352d2a749bc754a8d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] RzBuqvd_zD4: Join this channel to get access to members-only content like this video, and other exclusive perks. 05:34:05.891 [error] yt-dlp download error for media item #2281148: "ERROR: [youtube] RzBuqvd_zD4: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 05:34:05.893 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":2281148},"id":189113,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3301065,"event":"job:exception","queue_time":479557,"attempt":6,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:34:10.884 [info] {"source":"oban","duration":14570,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:34:40.905 [info] {"source":"oban","duration":21478,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 05:35:00.103 [info] {"source":"oban","duration":608,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:35:10.935 [info] {"source":"oban","duration":29381,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:35:30.800 [info] {"args":{"id":2281148},"id":189113,"meta":{},"system_time":1772364930800067691,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":7,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:35:30.801 [debug] QUERY OK source="media_items" db=0.7ms idle=285.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" = ?) [2281148] 05:35:30.801 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:35:30.802 [debug] QUERY OK source="sources" db=0.6ms idle=287.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:35:30.803 [debug] QUERY OK source="media_profiles" db=0.6ms idle=288.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] 05:35:30.806 [debug] QUERY OK source="media_items" db=1.7ms idle=12.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 [2281148] 05:35:30.808 [debug] QUERY OK source="media_metadata" db=0.3ms idle=8.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" = ?) [2281148] 05:35:30.809 [debug] QUERY OK source="media_profiles" db=0.3ms idle=7.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:35:30.810 [debug] QUERY OK source="settings" db=0.3ms 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 [] 05:35:30.810 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:35:30.811 [debug] Running yt-dlp command for action: get_downloadable_status 05:35:30.812 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:35:30.813 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:35:30.813 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:35:30.814 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RzBuqvd_zD4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/57/5f/575f6fbe794d7380a5e4565313146b503c89077ccf34870f4b17e13cda179af9.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:35:35.144 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RzBuqvd_zD4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/57/5f/575f6fbe794d7380a5e4565313146b503c89077ccf34870f4b17e13cda179af9.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] RzBuqvd_zD4: Join this channel to get access to members-only content like this video, and other exclusive perks. 05:35:35.144 [error] yt-dlp download error for media item #2281148: "ERROR: [youtube] RzBuqvd_zD4: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 05:35:35.146 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":2281148},"id":189113,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4345011,"event":"job:exception","queue_time":905436,"attempt":7,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:35:40.962 [info] {"source":"oban","duration":25527,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:36:00.104 [info] {"source":"oban","duration":360,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:36:10.999 [info] {"source":"oban","duration":37104,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 05:36:41.024 [info] {"source":"oban","duration":24078,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:36:48.976 [info] {"args":{"id":52},"id":189110,"meta":{},"system_time":1772365008976371747,"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"]} 05:36:48.978 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=462.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" = ?) [52] 05:36:48.979 [debug] QUERY OK source="settings" db=0.5ms queue=0.2ms idle=463.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:36:48.980 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.1ms idle=465.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] 05:36:48.983 [debug] QUERY OK source="settings" db=1.8ms queue=0.1ms idle=14.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:36:48.983 [debug] Fetching recent media IDs from YouTube RSS feed for source: UC9H0HzpKf5JlazkADWnW1Jw 05:36:49.278 [debug] Media ids fetched from RSS: ["AmqmI9SxdNc", "QwSDD2rvrbg", "M5fh85WVkPU", "AJGwm6P_f_8", "mfWhlH-5ooY", "eMl7jhLvHOQ", "GYBOJiYvtbI", "zMSL-kTF8LE", "lf9pprK5gg8", "WP69p26qNZY", "OuvUK9ZdjPs", "CA-0MvrvWAU", "-80I7UZL3hk", "hJ3wG8PVhPw", "HzeBu2mVff4"] 05:36:49.280 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=302.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND m0."media_id" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [52, "AmqmI9SxdNc", "QwSDD2rvrbg", "M5fh85WVkPU", "AJGwm6P_f_8", "mfWhlH-5ooY", "eMl7jhLvHOQ", "GYBOJiYvtbI", "zMSL-kTF8LE", "lf9pprK5gg8", "WP69p26qNZY", "OuvUK9ZdjPs", "CA-0MvrvWAU", "-80I7UZL3hk", "hJ3wG8PVhPw", "HzeBu2mVff4"] 05:36:49.284 [debug] QUERY OK source="media_items" db=1.7ms idle=304.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")))) [52] 05:36:49.291 [debug] QUERY OK source="tasks" db=0.6ms queue=0.1ms idle=307.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189116, 1301334, ~U[2026-03-01 11:36:49Z], ~U[2026-03-01 11:36:49Z]] 05:36:49.299 [info] {"args":{"id":1301334},"id":189116,"meta":{},"system_time":1772365009299377438,"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"]} 05:36:49.300 [info] {"args":{"id":1301335},"id":189117,"meta":{},"system_time":1772365009299479538,"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"]} 05:36:49.300 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=8.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1301334] 05:36:49.301 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:36:49.301 [debug] QUERY OK source="tasks" db=2.7ms queue=0.3ms idle=8.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189117, 1301335, ~U[2026-03-01 11:36:49Z], ~U[2026-03-01 11:36:49Z]] 05:36:49.301 [debug] QUERY OK source="media_items" db=0.7ms idle=4.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1301335] 05:36:49.301 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:36:49.302 [debug] QUERY OK source="sources" db=0.7ms queue=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" = ?) [52] 05:36:49.303 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=3.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 05:36:49.304 [debug] QUERY OK source="media_profiles" db=1.6ms 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] 05:36:49.304 [debug] QUERY OK source="media_profiles" db=0.7ms 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] 05:36:49.306 [debug] QUERY OK source="media_items" db=1.9ms 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 [1301334] 05:36:49.307 [debug] QUERY OK source="media_items" db=2.3ms 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 [1301335] 05:36:49.309 [debug] QUERY OK source="media_metadata" db=0.7ms queue=0.1ms idle=4.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" = ?) [1301334] 05:36:49.310 [debug] QUERY OK source="media_metadata" db=0.5ms 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" = ?) [1301335] 05:36:49.310 [debug] QUERY OK source="media_profiles" db=0.8ms 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] 05:36:49.311 [debug] QUERY OK source="media_profiles" db=1.2ms 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] 05:36:49.312 [debug] QUERY OK source="settings" db=0.8ms 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 [] 05:36:49.313 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:36:49.314 [debug] QUERY OK source="settings" db=1.0ms queue=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 [] 05:36:49.314 [debug] QUERY OK source="settings" db=1.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 [] 05:36:49.315 [debug] Running yt-dlp command for action: get_downloadable_status 05:36:49.316 [debug] QUERY OK source="tasks" db=1.0ms queue=0.3ms idle=2.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189118, 1301347, ~U[2026-03-01 11:36:49Z], ~U[2026-03-01 11:36:49Z]] 05:36:49.317 [debug] Running yt-dlp command for action: get_downloadable_status 05:36:49.318 [debug] QUERY OK source="settings" db=0.9ms 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 [] 05:36:49.319 [debug] QUERY OK source="settings" db=1.0ms queue=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 [] 05:36:49.320 [debug] QUERY OK source="settings" db=1.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 [] 05:36:49.321 [debug] QUERY OK source="settings" db=0.9ms 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 [] 05:36:49.321 [debug] QUERY OK source="settings" db=1.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 [] 05:36:49.321 [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/e6/87/e6876a012edb93698ee4b2717662489812dc9fb1b81e467156afc6d69a2e72b8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:36:49.322 [debug] QUERY OK source="settings" db=0.7ms queue=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 [] 05:36:49.322 [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/2a/e0/2ae056fb1c841d5db30713a74f0c7b7a9627b8bcf25d92675ed550e3123c464c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:36:49.326 [debug] QUERY OK source="tasks" db=0.5ms idle=4.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189119, 1301392, ~U[2026-03-01 11:36:49Z], ~U[2026-03-01 11:36:49Z]] 05:36:49.333 [debug] QUERY OK source="tasks" db=0.8ms idle=8.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189120, 1301393, ~U[2026-03-01 11:36:49Z], ~U[2026-03-01 11:36:49Z]] 05:36:49.341 [debug] QUERY OK source="tasks" db=1.2ms idle=8.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189121, 1301394, ~U[2026-03-01 11:36:49Z], ~U[2026-03-01 11:36:49Z]] 05:36:49.348 [debug] QUERY OK source="tasks" db=0.8ms idle=9.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189122, 1301395, ~U[2026-03-01 11:36:49Z], ~U[2026-03-01 11:36:49Z]] 05:36:49.358 [debug] QUERY OK source="tasks" db=0.7ms idle=9.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189123, 1301397, ~U[2026-03-01 11:36:49Z], ~U[2026-03-01 11:36:49Z]] 05:36:49.365 [debug] QUERY OK source="tasks" db=0.9ms idle=8.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189124, 1301398, ~U[2026-03-01 11:36:49Z], ~U[2026-03-01 11:36:49Z]] 05:36:49.373 [debug] QUERY OK source="tasks" db=0.9ms queue=0.1ms idle=9.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189125, 1301399, ~U[2026-03-01 11:36:49Z], ~U[2026-03-01 11:36:49Z]] 05:36:49.381 [debug] QUERY OK source="tasks" db=0.8ms queue=0.1ms idle=8.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189126, 1301400, ~U[2026-03-01 11:36:49Z], ~U[2026-03-01 11:36:49Z]] 05:36:49.386 [debug] QUERY OK source="tasks" db=0.9ms idle=6.1ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189127, 52, ~U[2026-03-01 11:36:49Z], ~U[2026-03-01 11:36:49Z]] 05:36:49.387 [info] {"args":{"id":52},"id":189110,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":409913,"event":"job:stop","queue_time":69055,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 05:36:54.941 [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/2a/e0/2ae056fb1c841d5db30713a74f0c7b7a9627b8bcf25d92675ed550e3123c464c.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. 05:36:54.942 [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" 05:36:54.943 [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" 05:36:54.945 [info] {"args":{"id":1301335},"id":189117,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5643787,"event":"job:stop","queue_time":296355,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:36:54.955 [info] {"args":{"id":1301347},"id":189118,"meta":{},"system_time":1772365014954613045,"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"]} 05:36:54.956 [debug] QUERY OK source="media_items" db=1.1ms queue=0.2ms idle=440.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] 05:36:54.957 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:36:54.959 [debug] QUERY OK source="sources" db=1.3ms queue=0.2ms idle=443.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:36:54.961 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.2ms idle=445.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] 05:36:54.964 [debug] QUERY OK source="media_items" db=1.5ms queue=0.2ms idle=17.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] 05:36:54.968 [debug] QUERY OK source="media_metadata" db=0.4ms queue=0.1ms idle=13.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] 05:36:54.970 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.1ms idle=12.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] 05:36:54.972 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=11.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:36:54.973 [debug] QUERY OK source="settings" db=0.5ms 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 [] 05:36:54.974 [debug] Running yt-dlp command for action: get_downloadable_status 05:36:54.977 [debug] QUERY OK source="settings" db=0.5ms queue=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 [] 05:36:54.978 [debug] QUERY OK source="settings" db=0.5ms queue=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 [] 05:36:54.979 [debug] QUERY OK source="settings" db=0.7ms 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 [] 05:36:54.980 [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/e4/39/e43909a5d00ce19b6775beabf5081140f05df869e51ec05c4beda935197826d3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:36:55.041 [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/e6/87/e6876a012edb93698ee4b2717662489812dc9fb1b81e467156afc6d69a2e72b8.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. 05:36:55.041 [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" 05:36:55.042 [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" 05:36:55.043 [info] {"args":{"id":1301334},"id":189116,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5742952,"event":"job:stop","queue_time":296355,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:36:55.054 [info] {"args":{"id":1301392},"id":189119,"meta":{},"system_time":1772365015054469439,"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"]} 05:36:55.056 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=77.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] 05:36:55.057 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:36:55.059 [debug] QUERY OK source="sources" db=1.3ms queue=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] 05:36:55.062 [debug] QUERY OK source="media_profiles" db=1.4ms queue=0.1ms idle=68.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] 05:36:55.065 [debug] QUERY OK source="media_items" db=1.8ms queue=0.1ms idle=19.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] 05:36:55.068 [debug] QUERY OK source="media_metadata" db=0.6ms queue=0.1ms idle=13.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] 05:36:55.070 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.1ms idle=12.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] 05:36:55.072 [debug] QUERY OK source="settings" db=0.7ms queue=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 [] 05:36:55.073 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=10.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:36:55.075 [debug] Running yt-dlp command for action: get_downloadable_status 05:36:55.079 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=13.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:36:55.081 [debug] QUERY OK source="settings" db=0.7ms queue=0.2ms idle=11.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:36:55.082 [debug] QUERY OK source="settings" db=0.7ms queue=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 [] 05:36:55.083 [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/f4/5f/f45ff35169d8eb694505529658872fc6df1883812c119bfcd831f28345adb3bc.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:37:00.106 [info] {"source":"oban","duration":599,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:37:00.503 [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/e4/39/e43909a5d00ce19b6775beabf5081140f05df869e51ec05c4beda935197826d3.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. 05:37:00.504 [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" 05:37:00.504 [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" 05:37:00.505 [info] {"args":{"id":1301347},"id":189118,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5549914,"event":"job:stop","queue_time":5951423,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:37:00.514 [info] {"args":{"id":1301393},"id":189120,"meta":{},"system_time":1772365020514470482,"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"]} 05:37:00.516 [debug] QUERY OK source="media_items" db=0.8ms idle=504.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] 05:37:00.516 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:37:00.518 [debug] QUERY OK source="sources" db=0.7ms idle=411.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:37:00.519 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.2ms idle=13.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] 05:37:00.521 [debug] QUERY OK source="media_items" db=0.6ms idle=5.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1301393] 05:37:00.524 [debug] QUERY OK source="media_metadata" db=0.5ms idle=8.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [1301393] 05:37:00.524 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms 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] 05:37:00.526 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:37:00.526 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms 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 [] 05:37:00.527 [debug] Running yt-dlp command for action: get_downloadable_status 05:37:00.528 [debug] QUERY OK source="settings" db=0.3ms 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 [] 05:37:00.529 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:37:00.530 [debug] QUERY OK source="settings" db=0.3ms 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 [] 05:37:00.530 [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/fc/83/fc834ef84bc88be27862a1e5d329ab05a04e6b1e3a7ea56bea9890a071bb1563.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:37:00.660 [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/f4/5f/f45ff35169d8eb694505529658872fc6df1883812c119bfcd831f28345adb3bc.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. 05:37:00.661 [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" 05:37:00.661 [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" 05:37:00.663 [info] {"args":{"id":1301392},"id":189119,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5607505,"event":"job:stop","queue_time":6050458,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:37:00.672 [info] {"args":{"id":1301394},"id":189121,"meta":{},"system_time":1772365020672521340,"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"]} 05:37:00.674 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=144.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" = ?) [1301394] 05:37:00.675 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:37:00.676 [debug] QUERY OK source="sources" db=0.8ms queue=0.2ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 05:37:00.678 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.2ms idle=146.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] 05:37:00.680 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=15.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 [1301394] 05:37:00.684 [debug] QUERY OK source="media_metadata" db=0.5ms idle=11.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] 05:37:00.685 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.1ms idle=10.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] 05:37:00.687 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=10.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:37:00.688 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=9.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:37:00.689 [debug] Running yt-dlp command for action: get_downloadable_status 05:37:00.691 [debug] QUERY OK source="settings" db=0.4ms 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 [] 05:37:00.692 [debug] QUERY OK source="settings" db=0.3ms queue=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 [] 05:37:00.693 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms 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 [] 05:37:00.694 [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/62/d6/62d6c921f2becfeabaa89ae0cf29a0bd7e9a67dd65dd2ae260b4130bcbbd3f3c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:37:06.615 [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/fc/83/fc834ef84bc88be27862a1e5d329ab05a04e6b1e3a7ea56bea9890a071bb1563.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. 05:37:06.615 [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" 05:37:06.616 [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" 05:37:06.619 [info] {"args":{"id":1301393},"id":189120,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":6102527,"event":"job:stop","queue_time":11512411,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:37:06.633 [info] {"args":{"id":1301395},"id":189122,"meta":{},"system_time":1772365026632209569,"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"]} 05:37:06.636 [debug] QUERY OK source="media_items" db=1.7ms queue=0.2ms idle=118.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] 05:37:06.637 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:37:06.640 [debug] QUERY OK source="sources" db=2.2ms queue=0.3ms 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" = ?) [52] 05:37:06.643 [debug] QUERY OK source="media_profiles" db=1.8ms queue=0.2ms idle=126.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] 05:37:06.647 [debug] QUERY OK source="media_items" db=2.4ms queue=0.2ms idle=25.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 [1301395] 05:37:06.652 [debug] QUERY OK source="media_metadata" db=0.6ms queue=0.1ms idle=20.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] 05:37:06.654 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.2ms idle=17.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] 05:37:06.657 [debug] QUERY OK source="settings" db=0.8ms queue=0.1ms idle=16.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:37:06.659 [debug] QUERY OK source="settings" db=0.8ms queue=0.2ms idle=15.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:37:06.661 [debug] Running yt-dlp command for action: get_downloadable_status 05:37:06.664 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=16.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:37:06.665 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=12.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:37:06.668 [debug] QUERY OK source="settings" db=1.1ms queue=0.3ms idle=12.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:37:06.669 [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/1b/89/1b89497dcf373dc76539f8892327ad018340c6e896d350ba4bffb6b36c838c2d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:37:07.256 [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/62/d6/62d6c921f2becfeabaa89ae0cf29a0bd7e9a67dd65dd2ae260b4130bcbbd3f3c.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. 05:37:07.257 [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" 05:37:07.258 [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" 05:37:07.261 [info] {"args":{"id":1301394},"id":189121,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":6586296,"event":"job:stop","queue_time":11669394,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:37:07.273 [info] {"args":{"id":1301397},"id":189123,"meta":{},"system_time":1772365027273207455,"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"]} 05:37:07.276 [debug] QUERY OK source="media_items" db=1.5ms queue=0.2ms idle=608.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] 05:37:07.277 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:37:07.279 [debug] QUERY OK source="sources" db=1.4ms queue=0.3ms idle=609.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 05:37:07.283 [debug] QUERY OK source="media_profiles" db=2.0ms queue=0.4ms idle=230.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] 05:37:07.287 [debug] QUERY OK source="media_items" db=2.7ms queue=0.3ms idle=23.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] 05:37:07.292 [debug] QUERY OK source="media_metadata" db=1.1ms queue=0.2ms idle=18.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] 05:37:07.295 [debug] QUERY OK source="media_profiles" db=1.8ms queue=0.2ms 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] 05:37:07.298 [debug] QUERY OK source="settings" db=1.0ms queue=0.2ms idle=18.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:37:07.301 [debug] QUERY OK source="settings" db=1.4ms queue=0.2ms idle=16.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:37:07.303 [debug] Running yt-dlp command for action: get_downloadable_status 05:37:07.307 [debug] QUERY OK source="settings" db=0.9ms queue=0.1ms idle=18.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:37:07.308 [debug] QUERY OK source="settings" db=0.9ms queue=0.1ms idle=14.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:37:07.310 [debug] QUERY OK source="settings" db=1.2ms queue=0.3ms idle=13.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:37:07.312 [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/80/77/8077109bb9b89bdbb43149b38b1057f76e130f649a9ce6df91586f229097cdd5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:37:11.062 [info] {"source":"oban","duration":36762,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:37:13.571 [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/1b/89/1b89497dcf373dc76539f8892327ad018340c6e896d350ba4bffb6b36c838c2d.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. 05:37:13.571 [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" 05:37:13.572 [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" 05:37:13.573 [info] {"args":{"id":1301395},"id":189122,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":6940425,"event":"job:stop","queue_time":17626538,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:37:13.582 [info] {"args":{"id":1301398},"id":189124,"meta":{},"system_time":1772365033582460124,"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"]} 05:37:13.585 [debug] QUERY OK source="media_items" db=2.0ms queue=0.2ms idle=1068.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] 05:37:13.586 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:37:13.587 [debug] QUERY OK source="sources" db=0.8ms idle=1071.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:37:13.589 [debug] QUERY OK source="media_profiles" db=0.6ms idle=508.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] 05:37:13.591 [debug] QUERY OK source="media_items" db=1.0ms idle=16.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] 05:37:13.593 [debug] QUERY OK source="media_metadata" db=0.3ms idle=10.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] 05:37:13.594 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 05:37:13.596 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms 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 [] 05:37:13.596 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:37:13.597 [debug] Running yt-dlp command for action: get_downloadable_status 05:37:13.599 [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 [] 05:37:13.600 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:37:13.600 [debug] QUERY OK source="settings" db=0.4ms 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 [] 05:37:13.601 [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/b8/1f/b81f0554fd73af034990d2d8cdbc97307169c1f0003d58c1166153b8562aee5a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:37:13.836 [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/80/77/8077109bb9b89bdbb43149b38b1057f76e130f649a9ce6df91586f229097cdd5.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. 05:37:13.837 [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" 05:37:13.838 [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" 05:37:13.839 [info] {"args":{"id":1301397},"id":189123,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":6565116,"event":"job:stop","queue_time":18268430,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:37:13.849 [info] {"args":{"id":1301399},"id":189125,"meta":{},"system_time":1772365033849241636,"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"]} 05:37:13.851 [debug] QUERY OK source="media_items" db=1.0ms idle=250.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] 05:37:13.851 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:37:13.853 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=252.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] 05:37:13.855 [debug] QUERY OK source="media_profiles" db=1.2ms queue=0.1ms idle=253.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] 05:37:13.858 [debug] QUERY OK source="media_items" db=1.5ms queue=0.1ms idle=16.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] 05:37:13.861 [debug] QUERY OK source="media_metadata" db=0.3ms idle=11.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" = ?) [1301399] 05:37:13.862 [debug] QUERY OK source="media_profiles" db=0.8ms idle=10.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] 05:37:13.864 [debug] QUERY OK source="settings" db=0.8ms idle=10.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:37:13.865 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=9.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:37:13.867 [debug] Running yt-dlp command for action: get_downloadable_status 05:37:13.870 [debug] QUERY OK source="settings" db=0.4ms queue=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 [] 05:37:13.871 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=9.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:37:13.872 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=8.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:37:13.872 [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/94/f4/94f4211cbabb9f7a0db5f8d32f2c1aea339f11d36699e59fbb4314a9eaafd1da.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:37:19.884 [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/b8/1f/b81f0554fd73af034990d2d8cdbc97307169c1f0003d58c1166153b8562aee5a.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. 05:37:19.885 [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" 05:37:19.885 [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" 05:37:19.886 [info] {"args":{"id":1301398},"id":189124,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":6303169,"event":"job:stop","queue_time":24579456,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:37:19.894 [info] {"args":{"id":1301400},"id":189126,"meta":{},"system_time":1772365039894705143,"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"]} 05:37:19.896 [debug] QUERY OK source="media_items" db=0.6ms idle=380.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] 05:37:19.896 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:37:19.897 [debug] QUERY OK source="sources" db=0.6ms queue=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 05:37:19.898 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=383.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] 05:37:19.900 [debug] QUERY OK source="media_items" db=0.9ms idle=12.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 [1301400] 05:37:19.902 [debug] QUERY OK source="media_metadata" db=0.2ms idle=7.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] 05:37:19.903 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 05:37:19.904 [debug] QUERY OK source="settings" db=0.3ms idle=6.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:37:19.904 [debug] QUERY OK source="settings" db=0.3ms 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 [] 05:37:19.905 [debug] Running yt-dlp command for action: get_downloadable_status 05:37:19.907 [debug] QUERY OK source="settings" db=0.3ms 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 [] 05:37:19.908 [debug] QUERY OK source="settings" db=0.4ms 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 [] 05:37:19.909 [debug] QUERY OK source="settings" db=0.4ms 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 [] 05:37:19.909 [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/b5/24/b524ca1f367eb1bfb74b930b48d25fdaf89556925cf3c7ece5da6c1b6870fecb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:37:20.319 [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/94/f4/94f4211cbabb9f7a0db5f8d32f2c1aea339f11d36699e59fbb4314a9eaafd1da.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. 05:37:20.320 [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" 05:37:20.320 [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" 05:37:20.322 [info] {"args":{"id":1301399},"id":189125,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":6471993,"event":"job:stop","queue_time":24846411,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:37:24.676 [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/b5/24/b524ca1f367eb1bfb74b930b48d25fdaf89556925cf3c7ece5da6c1b6870fecb.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. 05:37:24.676 [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" 05:37:24.677 [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" 05:37:24.679 [info] {"args":{"id":1301400},"id":189126,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4782569,"event":"job:stop","queue_time":30892403,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:37:41.084 [info] {"source":"oban","duration":20673,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:38:00.107 [info] {"source":"oban","duration":406,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:38:00.212 [info] {"args":{"id":2281148},"id":189113,"meta":{},"system_time":1772365080212307839,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":8,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:38:00.214 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=1012.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" = ?) [2281148] 05:38:00.214 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:38:00.215 [debug] QUERY OK source="sources" db=0.4ms idle=700.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:38:00.216 [debug] QUERY OK source="media_profiles" db=0.4ms idle=107.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] 05:38:00.217 [debug] QUERY OK source="media_items" db=0.5ms idle=13.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 [2281148] 05:38:00.219 [debug] QUERY OK source="media_metadata" db=0.1ms 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" = ?) [2281148] 05:38:00.219 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:38:00.220 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:38:00.220 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:38:00.221 [debug] Running yt-dlp command for action: get_downloadable_status 05:38:00.222 [debug] QUERY OK source="settings" db=0.2ms queue=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 [] 05:38:00.223 [debug] QUERY OK source="settings" db=0.2ms queue=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 [] 05:38:00.223 [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 [] 05:38:00.224 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RzBuqvd_zD4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/80/f4/80f42df6fbccb320883e7e7442b8eadce6e565e5fd0d0c82797216f65e2ace4e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:38:04.804 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RzBuqvd_zD4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/80/f4/80f42df6fbccb320883e7e7442b8eadce6e565e5fd0d0c82797216f65e2ace4e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] RzBuqvd_zD4: Join this channel to get access to members-only content like this video, and other exclusive perks. 05:38:04.804 [error] yt-dlp download error for media item #2281148: "ERROR: [youtube] RzBuqvd_zD4: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 05:38:04.807 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":2281148},"id":189113,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4593005,"event":"job:exception","queue_time":65097,"attempt":8,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:38:11.104 [info] {"source":"oban","duration":19506,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:38:19.259 [info] {"args":{"id":30},"id":189082,"meta":{},"system_time":1772365099259239979,"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"]} 05:38:19.261 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=745.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:38:19.262 [debug] QUERY OK source="settings" db=0.6ms idle=746.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:38:19.282 [debug] QUERY OK source="media_items" db=19.5ms idle=747.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] 05:38:19.285 [debug] QUERY OK source="media_items" db=2.6ms queue=0.2ms idle=32.0ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [30] 05:38:19.287 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=27.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] 05:38:19.288 [debug] QUERY OK source="settings" db=0.3ms idle=26.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:38:19.289 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=26.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:38:19.307 [debug] QUERY OK source="media_items" db=15.0ms idle=9.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [30] 05:38:19.312 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 05:38:19.313 [debug] Current batch of media processed. Will check again in 1000ms 05:38:19.313 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=27.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:38:19.314 [debug] QUERY OK source="settings" db=0.3ms idle=27.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:38:19.315 [debug] QUERY OK source="settings" db=0.3ms idle=26.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:38:19.316 [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/f7/39/f73924248f0f77f9d00e84f8918a8b617eb197457e52396b277c0af0e1e5e824.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/fe/f2/fef21097538193dfef7a3208255654492fa9b890e47af4ef677a143b7dd96bc3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:38:20.314 [debug] Current batch of media processed. Will check again in 1000ms 05:38:21.315 [debug] Current batch of media processed. Will check again in 1000ms 05:38:22.316 [debug] Current batch of media processed. Will check again in 1000ms 05:38:23.317 [debug] Current batch of media processed. Will check again in 1000ms 05:38:24.318 [debug] Current batch of media processed. Will check again in 1000ms 05:38:25.319 [debug] Current batch of media processed. Will check again in 1000ms 05:38:26.321 [debug] Current batch of media processed. Will check again in 1000ms 05:38:27.323 [debug] Current batch of media processed. Will check again in 1000ms 05:38:28.325 [debug] Current batch of media processed. Will check again in 1000ms 05:38:29.326 [debug] Current batch of media processed. Will check again in 1000ms 05:38:30.327 [debug] Current batch of media processed. Will check again in 1000ms 05:38:31.328 [debug] Current batch of media processed. Will check again in 1000ms 05:38:32.329 [debug] Current batch of media processed. Will check again in 1000ms 05:38:33.331 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "RAM Pricing is absolutely insane, storage is following along, nobody is buying computers anymore and the industry is an absolute mess\n\n==========Support The Channel==========\n► Patreon: https://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#SteamMachine #linux #Computer #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" => 1120, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022800_No One Is Buying Computers Anymore.mp4", "id" => "iPyTLOySnSc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=iPyTLOySnSc", "playlist_index" => 1, "timestamp" => 1772296216, "title" => "No One Is Buying Computers Anymore", "upload_date" => "20260228"} 05:38:33.332 [debug] QUERY OK source="sources" db=0.5ms queue=0.2ms idle=817.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:38:33.333 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=818.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:38:33.349 [debug] QUERY OK source="media_items" db=14.8ms queue=0.1ms idle=819.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-28 16:30:16Z], 30] 05:38:33.355 [debug] QUERY OK source="media_items" db=4.3ms idle=835.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" ["RAM Pricing is absolutely insane, storage is following along, nobody is buying computers anymore and the industry is an absolute mess\n\n==========Support The Channel==========\n► Patreon: https://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#SteamMachine #linux #Computer #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.", "No One Is Buying Computers Anymore", "89b41298-cc96-44f9-a3d9-487ba8c93ff6", "iPyTLOySnSc", 1120, false, "https://www.youtube.com/watch?v=iPyTLOySnSc", 1, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022800_No One Is Buying Computers Anymore.mp4", false, false, false, 30, [], 98, ~U[2026-02-28 16:30:16Z], ~U[2026-03-01 11:38:33Z], ~U[2026-03-01 11:38:33Z], "RAM Pricing is absolutely insane, storage is following along, nobody is buying computers anymore and the industry is an absolute mess\n\n==========Support The Channel==========\n► Patreon: https://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#SteamMachine #linux #Computer #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.", "No One Is Buying Computers Anymore", "iPyTLOySnSc", 1120, false, "https://www.youtube.com/watch?v=iPyTLOySnSc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022800_No One Is Buying Computers Anymore.mp4", false, 30, ~U[2026-02-28 16:30:16Z]] 05:38:33.356 [debug] QUERY OK source="sources" db=1.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" = ?) [30] 05:38:33.359 [debug] QUERY OK source="media_profiles" db=2.1ms idle=24.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] 05:38:33.361 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=26.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 [2376369] 05:38:33.361 [debug] Current batch of media processed. Will check again in 1000ms 05:38:34.362 [debug] Current batch of media processed. Will check again in 1000ms 05:38:35.363 [debug] Current batch of media processed. Will check again in 1000ms 05:38:36.364 [debug] Current batch of media processed. Will check again in 1000ms 05:38:37.365 [debug] Current batch of media processed. Will check again in 1000ms 05:38:38.366 [debug] Current batch of media processed. Will check again in 1000ms 05:38:39.368 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "By now you probably know about Kent Overstreet's antics in the Linux kernel with BcacheFS but we're not here to talk about that today, instead we're here to talk his AI chat bot which he is convinced is sentient and feels real emotion.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWebsite: https://poc.bcachefs.org/\nWhite Paper: https://poc.bcachefs.org/paper.pdf\nThe Register: https://www.theregister.com/2026/02/25/bcachefs_creator_ai/\nReddit Post: https://www.reddit.com/r/bcachefs/comments/1rblll1/the_blog_of_an_llm_saying_its_owned_by_kent_and/\nFunny Thread: https://social.vlhl.dev/notice/B3gj1a7Xfl0evR4Hke\nIRC Logs: https://paste.xinu.at/6atmCN\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AI #LLM #Linux #LinuxKernel #FOSS #OpenSource\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 1702, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022600_BCacheFS Developer Deployed His AI Girlfriend Helper.mp4", "id" => "oOzDI3mCv58", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=oOzDI3mCv58", "playlist_index" => 2, "timestamp" => 1772144938, "title" => "BCacheFS Developer Deployed His AI Girlfriend Helper", "upload_date" => "20260226"} 05:38:39.370 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=854.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:38:39.371 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=856.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:38:39.391 [debug] QUERY OK source="media_items" db=18.6ms queue=0.1ms idle=857.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-26 22:28:58Z], 30] 05:38:39.398 [debug] QUERY OK source="media_items" db=5.2ms queue=0.1ms idle=877.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" ["By now you probably know about Kent Overstreet's antics in the Linux kernel with BcacheFS but we're not here to talk about that today, instead we're here to talk his AI chat bot which he is convinced is sentient and feels real emotion.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWebsite: https://poc.bcachefs.org/\nWhite Paper: https://poc.bcachefs.org/paper.pdf\nThe Register: https://www.theregister.com/2026/02/25/bcachefs_creator_ai/\nReddit Post: https://www.reddit.com/r/bcachefs/comments/1rblll1/the_blog_of_an_llm_saying_its_owned_by_kent_and/\nFunny Thread: https://social.vlhl.dev/notice/B3gj1a7Xfl0evR4Hke\nIRC Logs: https://paste.xinu.at/6atmCN\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AI #LLM #Linux #LinuxKernel #FOSS #OpenSource\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "BCacheFS Developer Deployed His AI Girlfriend Helper", "baf424f9-2660-41e6-bd73-b170176b002f", "oOzDI3mCv58", 1702, false, "https://www.youtube.com/watch?v=oOzDI3mCv58", 2, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022600_BCacheFS Developer Deployed His AI Girlfriend Helper.mp4", false, false, false, 30, [], 98, ~U[2026-02-26 22:28:58Z], ~U[2026-03-01 11:38:39Z], ~U[2026-03-01 11:38:39Z], "By now you probably know about Kent Overstreet's antics in the Linux kernel with BcacheFS but we're not here to talk about that today, instead we're here to talk his AI chat bot which he is convinced is sentient and feels real emotion.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWebsite: https://poc.bcachefs.org/\nWhite Paper: https://poc.bcachefs.org/paper.pdf\nThe Register: https://www.theregister.com/2026/02/25/bcachefs_creator_ai/\nReddit Post: https://www.reddit.com/r/bcachefs/comments/1rblll1/the_blog_of_an_llm_saying_its_owned_by_kent_and/\nFunny Thread: https://social.vlhl.dev/notice/B3gj1a7Xfl0evR4Hke\nIRC Logs: https://paste.xinu.at/6atmCN\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AI #LLM #Linux #LinuxKernel #FOSS #OpenSource\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "BCacheFS Developer Deployed His AI Girlfriend Helper", "oOzDI3mCv58", 1702, false, "https://www.youtube.com/watch?v=oOzDI3mCv58", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022600_BCacheFS Developer Deployed His AI Girlfriend Helper.mp4", false, 30, ~U[2026-02-26 22:28:58Z]] 05:38:39.399 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=70.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:38:39.401 [debug] QUERY OK source="media_profiles" db=0.7ms idle=30.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] 05:38:39.403 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=30.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 [2362492] 05:38:39.403 [debug] Current batch of media processed. Will check again in 1000ms 05:38:40.404 [debug] Current batch of media processed. Will check again in 1000ms 05:38:41.135 [info] {"source":"oban","duration":31284,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 05:38:41.405 [debug] Current batch of media processed. Will check again in 1000ms 05:38:42.406 [debug] Current batch of media processed. Will check again in 1000ms 05:38:43.407 [debug] Current batch of media processed. Will check again in 1000ms 05:38:44.409 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "For a long time Ladybird browser was going to adopt Swift lang but recently they did a port over to Rust and not just that, used AI to start off the port and this lead to a bit of controversy.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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://ladybird.org/posts/adopting-rust/\nLadybird Swift Issue: https://github.com/LadybirdBrowser/ladybird/issues/933\nPodcast Clip: https://www.youtube.com/watch?v=DSEZ2ZYLdHg\nTwitter Post: https://x.com/awesomekling/status/1822241531501162806\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Rust #Swift #Ladybird #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" => 1095, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022500_Ladybird Browser Gave Up C++ For Rust Lang.mp4", "id" => "lBd5QGjCcGc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=lBd5QGjCcGc", "playlist_index" => 3, "timestamp" => 1772037018, "title" => "Ladybird Browser Gave Up C++ For Rust Lang", "upload_date" => "20260225"} 05:38:44.409 [debug] QUERY OK source="sources" db=0.3ms idle=1894.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] 05:38:44.410 [debug] QUERY OK source="sources" db=0.2ms idle=1895.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:38:44.423 [debug] QUERY OK source="media_items" db=12.3ms idle=1896.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-25 16:30:18Z], 30] 05:38:44.427 [debug] QUERY OK source="media_items" db=2.9ms idle=1080.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" ["For a long time Ladybird browser was going to adopt Swift lang but recently they did a port over to Rust and not just that, used AI to start off the port and this lead to a bit of controversy.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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://ladybird.org/posts/adopting-rust/\nLadybird Swift Issue: https://github.com/LadybirdBrowser/ladybird/issues/933\nPodcast Clip: https://www.youtube.com/watch?v=DSEZ2ZYLdHg\nTwitter Post: https://x.com/awesomekling/status/1822241531501162806\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Rust #Swift #Ladybird #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.", "Ladybird Browser Gave Up C++ For Rust Lang", "dd1a9ad4-6699-4ded-aa16-fb85f6ebffa4", "lBd5QGjCcGc", 1095, false, "https://www.youtube.com/watch?v=lBd5QGjCcGc", 3, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022500_Ladybird Browser Gave Up C++ For Rust Lang.mp4", false, false, false, 30, [], 98, ~U[2026-02-25 16:30:18Z], ~U[2026-03-01 11:38:44Z], ~U[2026-03-01 11:38:44Z], "For a long time Ladybird browser was going to adopt Swift lang but recently they did a port over to Rust and not just that, used AI to start off the port and this lead to a bit of controversy.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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://ladybird.org/posts/adopting-rust/\nLadybird Swift Issue: https://github.com/LadybirdBrowser/ladybird/issues/933\nPodcast Clip: https://www.youtube.com/watch?v=DSEZ2ZYLdHg\nTwitter Post: https://x.com/awesomekling/status/1822241531501162806\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Rust #Swift #Ladybird #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.", "Ladybird Browser Gave Up C++ For Rust Lang", "lBd5QGjCcGc", 1095, false, "https://www.youtube.com/watch?v=lBd5QGjCcGc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022500_Ladybird Browser Gave Up C++ For Rust Lang.mp4", false, 30, ~U[2026-02-25 16:30:18Z]] 05:38:44.428 [debug] QUERY OK source="sources" db=0.5ms idle=81.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] 05:38:44.429 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=18.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] 05:38:44.430 [debug] QUERY OK source="media_items" db=0.6ms idle=19.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 [2352916] 05:38:44.430 [debug] Current batch of media processed. Will check again in 1000ms 05:38:45.431 [debug] Current batch of media processed. Will check again in 1000ms 05:38:46.432 [debug] Current batch of media processed. Will check again in 1000ms 05:38:47.433 [debug] Current batch of media processed. Will check again in 1000ms 05:38:48.434 [debug] Current batch of media processed. Will check again in 1000ms 05:38:49.435 [debug] Current batch of media processed. Will check again in 1000ms 05:38:50.437 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "You probably know that HDMI 2.1 is a no go on Linux with an AMD GPU, well that's only if you're an HDMI Forum member, who says you have to listen to there rules if you just reverse engineer the support.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHDMI 2.1 FRL Work: https://github.com/mkopec/linux/\nReddit Post: https://www.reddit.com/r/linux_gaming/comments/1r793et/hdmi_21_frl_looking_for_testers/\nXilinux Article: https://www.phoronix.com/news/AMDGPU-HDMI-2.1-But-Xilinx\nAMD Thread: https://gitlab.freedesktop.org/drm/amd/-/issues/1417#note_3335295\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AMD #Linux #HDMI #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" => 1021, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022400_HDMI Forum Hates This New Kernel Patch.mp4", "id" => "N53wMB9d4As", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=N53wMB9d4As", "playlist_index" => 4, "timestamp" => 1771950616, "title" => "HDMI Forum Hates This New Kernel Patch", "upload_date" => "20260224"} 05:38:50.438 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=923.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:38:50.439 [debug] QUERY OK source="sources" db=0.5ms idle=924.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:38:50.458 [debug] QUERY OK source="media_items" db=17.4ms idle=925.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-24 16:30:16Z], 30] 05:38:50.464 [debug] QUERY OK source="media_items" db=4.6ms idle=944.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 probably know that HDMI 2.1 is a no go on Linux with an AMD GPU, well that's only if you're an HDMI Forum member, who says you have to listen to there rules if you just reverse engineer the support.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHDMI 2.1 FRL Work: https://github.com/mkopec/linux/\nReddit Post: https://www.reddit.com/r/linux_gaming/comments/1r793et/hdmi_21_frl_looking_for_testers/\nXilinux Article: https://www.phoronix.com/news/AMDGPU-HDMI-2.1-But-Xilinx\nAMD Thread: https://gitlab.freedesktop.org/drm/amd/-/issues/1417#note_3335295\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AMD #Linux #HDMI #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.", "HDMI Forum Hates This New Kernel Patch", "9386a136-2696-45ac-ad99-ef96a083d97b", "N53wMB9d4As", 1021, false, "https://www.youtube.com/watch?v=N53wMB9d4As", 4, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022400_HDMI Forum Hates This New Kernel Patch.mp4", false, false, false, 30, [], 98, ~U[2026-02-24 16:30:16Z], ~U[2026-03-01 11:38:50Z], ~U[2026-03-01 11:38:50Z], "You probably know that HDMI 2.1 is a no go on Linux with an AMD GPU, well that's only if you're an HDMI Forum member, who says you have to listen to there rules if you just reverse engineer the support.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHDMI 2.1 FRL Work: https://github.com/mkopec/linux/\nReddit Post: https://www.reddit.com/r/linux_gaming/comments/1r793et/hdmi_21_frl_looking_for_testers/\nXilinux Article: https://www.phoronix.com/news/AMDGPU-HDMI-2.1-But-Xilinx\nAMD Thread: https://gitlab.freedesktop.org/drm/amd/-/issues/1417#note_3335295\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AMD #Linux #HDMI #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.", "HDMI Forum Hates This New Kernel Patch", "N53wMB9d4As", 1021, false, "https://www.youtube.com/watch?v=N53wMB9d4As", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022400_HDMI Forum Hates This New Kernel Patch.mp4", false, 30, ~U[2026-02-24 16:30:16Z]] 05:38:50.465 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=100.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:38:50.466 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=27.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] 05:38:50.468 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=27.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 [2344980] 05:38:50.468 [debug] Current batch of media processed. Will check again in 1000ms 05:38:51.469 [debug] Current batch of media processed. Will check again in 1000ms 05:38:52.470 [debug] Current batch of media processed. Will check again in 1000ms 05:38:53.471 [debug] Current batch of media processed. Will check again in 1000ms 05:38:54.472 [debug] Current batch of media processed. Will check again in 1000ms 05:38:55.474 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "If you're on Linux you've probably written at least a couple of Bash shell scripts, but what if there was another way to do it, a node based way where you didn't have to write any code by hand.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVish Github: https://github.com/Lluciocc/Vish\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Bash #Zsh #Programming #shellscripting \n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 867, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022300_The Most Unique Way To Make Bash Shell Scripts.mp4", "id" => "5SLDNN5DP_o", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5SLDNN5DP_o", "playlist_index" => 5, "timestamp" => 1771864202, "title" => "The Most Unique Way To Make Bash Shell Scripts", "upload_date" => "20260223"} 05:38:55.475 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=1959.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] 05:38:55.476 [debug] QUERY OK source="sources" db=0.4ms idle=1961.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:38:55.492 [debug] QUERY OK source="media_items" db=14.6ms queue=0.1ms idle=1962.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-23 16:30:02Z], 30] 05:38:55.499 [debug] QUERY OK source="media_items" db=5.1ms idle=1117.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" ["If you're on Linux you've probably written at least a couple of Bash shell scripts, but what if there was another way to do it, a node based way where you didn't have to write any code by hand.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVish Github: https://github.com/Lluciocc/Vish\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Bash #Zsh #Programming #shellscripting \n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Most Unique Way To Make Bash Shell Scripts", "156e8aa0-0600-4d33-ad9e-cbf4f18baba7", "5SLDNN5DP_o", 867, false, "https://www.youtube.com/watch?v=5SLDNN5DP_o", 5, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022300_The Most Unique Way To Make Bash Shell Scripts.mp4", false, false, false, 30, [], 98, ~U[2026-02-23 16:30:02Z], ~U[2026-03-01 11:38:55Z], ~U[2026-03-01 11:38:55Z], "If you're on Linux you've probably written at least a couple of Bash shell scripts, but what if there was another way to do it, a node based way where you didn't have to write any code by hand.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVish Github: https://github.com/Lluciocc/Vish\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Bash #Zsh #Programming #shellscripting \n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Most Unique Way To Make Bash Shell Scripts", "5SLDNN5DP_o", 867, false, "https://www.youtube.com/watch?v=5SLDNN5DP_o", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022300_The Most Unique Way To Make Bash Shell Scripts.mp4", false, 30, ~U[2026-02-23 16:30:02Z]] 05:38:55.500 [debug] QUERY OK source="sources" db=0.8ms idle=121.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] 05:38:55.501 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.1ms idle=25.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] 05:38:55.503 [debug] QUERY OK source="media_items" db=1.1ms idle=25.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 [2337310] 05:38:55.504 [debug] Current batch of media processed. Will check again in 1000ms 05:38:56.505 [debug] Current batch of media processed. Will check again in 1000ms 05:38:57.506 [debug] Current batch of media processed. Will check again in 1000ms 05:38:58.507 [debug] Current batch of media processed. Will check again in 1000ms 05:38:59.508 [debug] Current batch of media processed. Will check again in 1000ms 05:39:00.108 [info] {"source":"oban","duration":374,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:39:00.509 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "You've probably heard that screensavers aren't possible on Wayland but that's not actually the case, not only are they possible but there are options available to use like XScreensaver even on Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWayland Screensaver: https://www.jwz.org/blog/2023/09/wayland-and-screen-savers/\nXscreensaver 6.11: https://www.jwz.org/blog/2025/07/xscreensaver-6-11/\nXscreensaver 6.12: https://www.jwz.org/blog/2025/07/xscreensaver-6-12/\nLinux Mint: https://blog.linuxmint.com/?p=4991\nKDE: https://invent.kde.org/plasma/kscreenlocker/-/merge_requests/207\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #FOSS #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 862, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022200_Screensavers Are Coming To Wayland.mp4", "id" => "i6qMTnHQ9ow", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=i6qMTnHQ9ow", "playlist_index" => 6, "timestamp" => 1771777818, "title" => "Screensavers Are Coming To Wayland", "upload_date" => "20260222"} 05:39:00.510 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1995.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] 05:39:00.511 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1996.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:39:00.524 [debug] QUERY OK source="media_items" db=11.8ms idle=1121.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-22 16:30:18Z], 30] 05:39:00.529 [debug] QUERY OK source="media_items" db=3.7ms idle=415.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've probably heard that screensavers aren't possible on Wayland but that's not actually the case, not only are they possible but there are options available to use like XScreensaver even on Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWayland Screensaver: https://www.jwz.org/blog/2023/09/wayland-and-screen-savers/\nXscreensaver 6.11: https://www.jwz.org/blog/2025/07/xscreensaver-6-11/\nXscreensaver 6.12: https://www.jwz.org/blog/2025/07/xscreensaver-6-12/\nLinux Mint: https://blog.linuxmint.com/?p=4991\nKDE: https://invent.kde.org/plasma/kscreenlocker/-/merge_requests/207\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #FOSS #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Screensavers Are Coming To Wayland", "0bcb0002-e9c2-4975-9ba9-91a83922a57b", "i6qMTnHQ9ow", 862, false, "https://www.youtube.com/watch?v=i6qMTnHQ9ow", 6, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022200_Screensavers Are Coming To Wayland.mp4", false, false, false, 30, [], 98, ~U[2026-02-22 16:30:18Z], ~U[2026-03-01 11:39:00Z], ~U[2026-03-01 11:39:00Z], "You've probably heard that screensavers aren't possible on Wayland but that's not actually the case, not only are they possible but there are options available to use like XScreensaver even on Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWayland Screensaver: https://www.jwz.org/blog/2023/09/wayland-and-screen-savers/\nXscreensaver 6.11: https://www.jwz.org/blog/2025/07/xscreensaver-6-11/\nXscreensaver 6.12: https://www.jwz.org/blog/2025/07/xscreensaver-6-12/\nLinux Mint: https://blog.linuxmint.com/?p=4991\nKDE: https://invent.kde.org/plasma/kscreenlocker/-/merge_requests/207\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #FOSS #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Screensavers Are Coming To Wayland", "i6qMTnHQ9ow", 862, false, "https://www.youtube.com/watch?v=i6qMTnHQ9ow", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022200_Screensavers Are Coming To Wayland.mp4", false, 30, ~U[2026-02-22 16:30:18Z]] 05:39:00.530 [debug] QUERY OK source="sources" db=0.6ms idle=137.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:39:00.531 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=19.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] 05:39:00.532 [debug] QUERY OK source="media_items" db=0.6ms idle=20.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 [2329425] 05:39:00.533 [debug] Current batch of media processed. Will check again in 1000ms 05:39:01.533 [debug] Current batch of media processed. Will check again in 1000ms 05:39:02.534 [debug] Current batch of media processed. Will check again in 1000ms 05:39:03.535 [debug] Current batch of media processed. Will check again in 1000ms 05:39:04.536 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Nowadays the default look of KDE Plasma is called Breeze but before that during the KDE 4 era we had both Oxygen and Air and this developer is trying to bring it back.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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 Post: https://filipfila.wordpress.com/2026/02/08/beating-an-old-but-not-dead-horse-what-to-do-with-the-oxygen-and-air-themes/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 851, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022100_Bringing KDE 4 Oxygen Back To Modern KDE.mp4", "id" => "VplYzVNVncg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=VplYzVNVncg", "playlist_index" => 7, "timestamp" => 1771691412, "title" => "Bringing KDE 4 Oxygen Back To Modern KDE", "upload_date" => "20260221"} 05:39:04.537 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=134.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:39:04.538 [debug] QUERY OK source="sources" db=0.3ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:39:04.550 [debug] QUERY OK source="media_items" db=11.8ms idle=24.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-21 16:30:12Z], 30] 05:39:04.555 [debug] QUERY OK source="media_items" db=3.5ms idle=36.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" ["Nowadays the default look of KDE Plasma is called Breeze but before that during the KDE 4 era we had both Oxygen and Air and this developer is trying to bring it back.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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 Post: https://filipfila.wordpress.com/2026/02/08/beating-an-old-but-not-dead-horse-what-to-do-with-the-oxygen-and-air-themes/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bringing KDE 4 Oxygen Back To Modern KDE", "4898726e-0685-4474-a038-fce5f7a7f262", "VplYzVNVncg", 851, false, "https://www.youtube.com/watch?v=VplYzVNVncg", 7, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022100_Bringing KDE 4 Oxygen Back To Modern KDE.mp4", false, false, false, 30, [], 98, ~U[2026-02-21 16:30:12Z], ~U[2026-03-01 11:39:04Z], ~U[2026-03-01 11:39:04Z], "Nowadays the default look of KDE Plasma is called Breeze but before that during the KDE 4 era we had both Oxygen and Air and this developer is trying to bring it back.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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 Post: https://filipfila.wordpress.com/2026/02/08/beating-an-old-but-not-dead-horse-what-to-do-with-the-oxygen-and-air-themes/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bringing KDE 4 Oxygen Back To Modern KDE", "VplYzVNVncg", 851, false, "https://www.youtube.com/watch?v=VplYzVNVncg", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022100_Bringing KDE 4 Oxygen Back To Modern KDE.mp4", false, 30, ~U[2026-02-21 16:30:12Z]] 05:39:04.556 [debug] QUERY OK source="sources" db=0.5ms idle=41.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:39:04.557 [debug] QUERY OK source="media_profiles" db=0.6ms idle=18.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] 05:39:04.558 [debug] QUERY OK source="media_items" db=0.7ms idle=19.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 [2321562] 05:39:04.558 [debug] Current batch of media processed. Will check again in 1000ms 05:39:05.559 [debug] Current batch of media processed. Will check again in 1000ms 05:39:06.560 [debug] Current batch of media processed. Will check again in 1000ms 05:39:07.561 [debug] Current batch of media processed. Will check again in 1000ms 05:39:08.562 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The window manager space on Wayland has completely changed over the past few years, there was a time when Sway was the only good choice but now you have both Hyprland a dynamic tiler and Niri a scroller and this has changed the equation for what you can do on Wayland.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHyprland: https://hypr.land/\nNiri: https://github.com/niri-wm/niri\nKarousel: https://github.com/peterfajdiga/karousel\nRiver Repo: https://codeberg.org/river/river\nHyprland Wiki: https://wiki.hypr.land/\nNiri Wiki: https://github.com/niri-wm/niri/wiki/Configuration:-Introduction\nQuickshell: https://quickshell.org/\nMaterial Shell: https://github.com/AvengeMedia/DankMaterialShell\nNoctalia: https://github.com/noctalia-dev/noctalia-shell\nCaelestia: https://github.com/caelestia-dots/shell\nTheo Comment: https://x.com/theo/status/2018422881705984483\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Niri #Hyprland #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 1078, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021900_Hyprland And Niri Changed Wayland Forever.mp4", "id" => "jeY7xQ13v6I", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=jeY7xQ13v6I", "playlist_index" => 8, "timestamp" => 1771518621, "title" => "Hyprland And Niri Changed Wayland Forever", "upload_date" => "20260219"} 05:39:08.563 [debug] QUERY OK source="sources" db=0.3ms idle=151.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] 05:39:08.564 [debug] QUERY OK source="sources" db=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:39:08.574 [debug] QUERY OK source="media_items" db=10.2ms idle=49.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 16:30:21Z], 30] 05:39:08.578 [debug] QUERY OK source="media_items" db=2.9ms idle=60.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 window manager space on Wayland has completely changed over the past few years, there was a time when Sway was the only good choice but now you have both Hyprland a dynamic tiler and Niri a scroller and this has changed the equation for what you can do on Wayland.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHyprland: https://hypr.land/\nNiri: https://github.com/niri-wm/niri\nKarousel: https://github.com/peterfajdiga/karousel\nRiver Repo: https://codeberg.org/river/river\nHyprland Wiki: https://wiki.hypr.land/\nNiri Wiki: https://github.com/niri-wm/niri/wiki/Configuration:-Introduction\nQuickshell: https://quickshell.org/\nMaterial Shell: https://github.com/AvengeMedia/DankMaterialShell\nNoctalia: https://github.com/noctalia-dev/noctalia-shell\nCaelestia: https://github.com/caelestia-dots/shell\nTheo Comment: https://x.com/theo/status/2018422881705984483\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Niri #Hyprland #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Hyprland And Niri Changed Wayland Forever", "0eecf574-dd29-4f74-87d9-3e6d40f7f89b", "jeY7xQ13v6I", 1078, false, "https://www.youtube.com/watch?v=jeY7xQ13v6I", 8, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021900_Hyprland And Niri Changed Wayland Forever.mp4", false, false, false, 30, [], 98, ~U[2026-02-19 16:30:21Z], ~U[2026-03-01 11:39:08Z], ~U[2026-03-01 11:39:08Z], "The window manager space on Wayland has completely changed over the past few years, there was a time when Sway was the only good choice but now you have both Hyprland a dynamic tiler and Niri a scroller and this has changed the equation for what you can do on Wayland.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHyprland: https://hypr.land/\nNiri: https://github.com/niri-wm/niri\nKarousel: https://github.com/peterfajdiga/karousel\nRiver Repo: https://codeberg.org/river/river\nHyprland Wiki: https://wiki.hypr.land/\nNiri Wiki: https://github.com/niri-wm/niri/wiki/Configuration:-Introduction\nQuickshell: https://quickshell.org/\nMaterial Shell: https://github.com/AvengeMedia/DankMaterialShell\nNoctalia: https://github.com/noctalia-dev/noctalia-shell\nCaelestia: https://github.com/caelestia-dots/shell\nTheo Comment: https://x.com/theo/status/2018422881705984483\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Niri #Hyprland #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Hyprland And Niri Changed Wayland Forever", "jeY7xQ13v6I", 1078, false, "https://www.youtube.com/watch?v=jeY7xQ13v6I", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021900_Hyprland And Niri Changed Wayland Forever.mp4", false, 30, ~U[2026-02-19 16:30:21Z]] 05:39:08.579 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [30] 05:39:08.580 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 05:39:08.581 [debug] QUERY OK source="media_items" db=0.6ms idle=16.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 [2305791] 05:39:08.581 [debug] Current batch of media processed. Will check again in 1000ms 05:39:09.582 [debug] Current batch of media processed. Will check again in 1000ms 05:39:10.583 [debug] Current batch of media processed. Will check again in 1000ms 05:39:11.155 [info] {"source":"oban","duration":18963,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:39:11.584 [debug] Current batch of media processed. Will check again in 1000ms 05:39:12.585 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A few weeks back KDE announced that the new Plasma Login Manager was going to require the use of Systemd and thus wouldn't work on FreeBSD or the other BSDs and whilst this is true it's only about the Login Manager not the rest of KDE Plasma\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\n9to5Linux: https://9to5linux.com/kaos-linux-drops-kde-plasma-after-12-years-for-niri-noctalia-to-escape-systemd\nLinuxiac: https://linuxiac.com/kaos-2026-02-debuts-niri-wayland-desktop/\nXDA Developers: https://www.xda-developers.com/linux-distro-dropped-kde-plasma-support-tries-to-escape-systemd/\nKaOS News Post: https://kaosx.us/news/2026/kaos02/\nReddit Post: https://www.reddit.com/r/kde/comments/1r68jmi/a_quick_antifud_faq_to_debunk_the_kde_is_forcing/\nFreeBSd Wayland: https://x61.sh/log/2024/05/27052024192206-sway_openbsd.html\nNetBSD 2020: https://blog.netbsd.org/tnf/entry/wayland_on_netbsd_trials_and\nFreeBSD and NetBSD Now: https://www.youtube.com/watch?v=oo_8gnWQ4xo\nHikari: http://hikari.acmelabs.space/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 843, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021800_KDE Plasma Is Not Forcing Systemd Use.mp4", "id" => "0l29JZxzong", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=0l29JZxzong", "playlist_index" => 9, "timestamp" => 1771432200, "title" => "KDE Plasma Is Not Forcing Systemd Use", "upload_date" => "20260218"} 05:39:12.586 [debug] QUERY OK source="sources" db=0.3ms idle=165.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:39:12.587 [debug] QUERY OK source="sources" db=0.3ms idle=72.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:39:12.598 [debug] QUERY OK source="media_items" db=10.2ms idle=73.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-18 16:30:00Z], 30] 05:39:12.627 [debug] QUERY OK source="media_items" db=27.9ms idle=84.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" ["A few weeks back KDE announced that the new Plasma Login Manager was going to require the use of Systemd and thus wouldn't work on FreeBSD or the other BSDs and whilst this is true it's only about the Login Manager not the rest of KDE Plasma\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\n9to5Linux: https://9to5linux.com/kaos-linux-drops-kde-plasma-after-12-years-for-niri-noctalia-to-escape-systemd\nLinuxiac: https://linuxiac.com/kaos-2026-02-debuts-niri-wayland-desktop/\nXDA Developers: https://www.xda-developers.com/linux-distro-dropped-kde-plasma-support-tries-to-escape-systemd/\nKaOS News Post: https://kaosx.us/news/2026/kaos02/\nReddit Post: https://www.reddit.com/r/kde/comments/1r68jmi/a_quick_antifud_faq_to_debunk_the_kde_is_forcing/\nFreeBSd Wayland: https://x61.sh/log/2024/05/27052024192206-sway_openbsd.html\nNetBSD 2020: https://blog.netbsd.org/tnf/entry/wayland_on_netbsd_trials_and\nFreeBSD and NetBSD Now: https://www.youtube.com/watch?v=oo_8gnWQ4xo\nHikari: http://hikari.acmelabs.space/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Is Not Forcing Systemd Use", "f5ed8d39-d218-48ab-8d61-a7b40b1f903b", "0l29JZxzong", 843, false, "https://www.youtube.com/watch?v=0l29JZxzong", 9, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021800_KDE Plasma Is Not Forcing Systemd Use.mp4", false, false, false, 30, [], 98, ~U[2026-02-18 16:30:00Z], ~U[2026-03-01 11:39:12Z], ~U[2026-03-01 11:39:12Z], "A few weeks back KDE announced that the new Plasma Login Manager was going to require the use of Systemd and thus wouldn't work on FreeBSD or the other BSDs and whilst this is true it's only about the Login Manager not the rest of KDE Plasma\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\n9to5Linux: https://9to5linux.com/kaos-linux-drops-kde-plasma-after-12-years-for-niri-noctalia-to-escape-systemd\nLinuxiac: https://linuxiac.com/kaos-2026-02-debuts-niri-wayland-desktop/\nXDA Developers: https://www.xda-developers.com/linux-distro-dropped-kde-plasma-support-tries-to-escape-systemd/\nKaOS News Post: https://kaosx.us/news/2026/kaos02/\nReddit Post: https://www.reddit.com/r/kde/comments/1r68jmi/a_quick_antifud_faq_to_debunk_the_kde_is_forcing/\nFreeBSd Wayland: https://x61.sh/log/2024/05/27052024192206-sway_openbsd.html\nNetBSD 2020: https://blog.netbsd.org/tnf/entry/wayland_on_netbsd_trials_and\nFreeBSD and NetBSD Now: https://www.youtube.com/watch?v=oo_8gnWQ4xo\nHikari: http://hikari.acmelabs.space/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Is Not Forcing Systemd Use", "0l29JZxzong", 843, false, "https://www.youtube.com/watch?v=0l29JZxzong", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021800_KDE Plasma Is Not Forcing Systemd Use.mp4", false, 30, ~U[2026-02-18 16:30:00Z]] 05:39:12.628 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=113.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:39:12.629 [debug] QUERY OK source="media_profiles" db=0.3ms idle=42.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] 05:39:12.630 [debug] QUERY OK source="media_items" db=0.5ms idle=42.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 [2298089] 05:39:12.630 [debug] Current batch of media processed. Will check again in 1000ms 05:39:13.630 [debug] Current batch of media processed. Will check again in 1000ms 05:39:14.631 [debug] Current batch of media processed. Will check again in 1000ms 05:39:15.633 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "What if I told you that an AI agent just tried to ruin the career of a developer on Matplotlib who was following Matplotlib policy to not allow AI agents, writing a hilarious blog post on the situation but it gets even better from there\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nIssue: https://github.com/matplotlib/matplotlib/issues/31130\nMerge Request: https://github.com/matplotlib/matplotlib/pull/31132\nOpenClaw Joins OpenAI: https://www.itnews.com.au/news/openclaw-founder-joins-openai-623662\nAI Blog Post 1: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-gatekeeping-in-open-source-the-scott-shambaugh-story.html\nAI Blog Post 2: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-matplotlib-truce-and-lessons.html\nScott Blog Post 1: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me/\nArs Technica Article: https://web.archive.org/web/20260213194851/https://arstechnica.com/ai/2026/02/after-a-routine-code-rejection-an-ai-agent-published-a-hit-piece-on-someone-by-name/\nScott Blog Post 2: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me-part-2/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#AI #OpenSource #Developer #SoftwareDeveloper #Programmer\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 1382, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021700_When AI Agents Try To Ruin Your Career.mp4", "id" => "fMoUE59H9bs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=fMoUE59H9bs", "playlist_index" => 10, "timestamp" => 1771345828, "title" => "When AI Agents Try To Ruin Your Career", "upload_date" => "20260217"} 05:39:15.633 [debug] QUERY OK source="sources" db=0.4ms idle=1118.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:39:15.634 [debug] QUERY OK source="sources" db=0.4ms idle=1119.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] 05:39:15.646 [debug] QUERY OK source="media_items" db=10.7ms idle=1120.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-17 16:30:28Z], 30] 05:39:15.655 [debug] QUERY OK source="media_items" db=7.9ms idle=1131.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" ["What if I told you that an AI agent just tried to ruin the career of a developer on Matplotlib who was following Matplotlib policy to not allow AI agents, writing a hilarious blog post on the situation but it gets even better from there\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nIssue: https://github.com/matplotlib/matplotlib/issues/31130\nMerge Request: https://github.com/matplotlib/matplotlib/pull/31132\nOpenClaw Joins OpenAI: https://www.itnews.com.au/news/openclaw-founder-joins-openai-623662\nAI Blog Post 1: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-gatekeeping-in-open-source-the-scott-shambaugh-story.html\nAI Blog Post 2: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-matplotlib-truce-and-lessons.html\nScott Blog Post 1: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me/\nArs Technica Article: https://web.archive.org/web/20260213194851/https://arstechnica.com/ai/2026/02/after-a-routine-code-rejection-an-ai-agent-published-a-hit-piece-on-someone-by-name/\nScott Blog Post 2: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me-part-2/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#AI #OpenSource #Developer #SoftwareDeveloper #Programmer\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "When AI Agents Try To Ruin Your Career", "d0e4111a-8a2c-4bd0-9c94-b1455f626bc2", "fMoUE59H9bs", 1382, false, "https://www.youtube.com/watch?v=fMoUE59H9bs", 10, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021700_When AI Agents Try To Ruin Your Career.mp4", false, false, false, 30, [], 98, ~U[2026-02-17 16:30:28Z], ~U[2026-03-01 11:39:15Z], ~U[2026-03-01 11:39:15Z], "What if I told you that an AI agent just tried to ruin the career of a developer on Matplotlib who was following Matplotlib policy to not allow AI agents, writing a hilarious blog post on the situation but it gets even better from there\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nIssue: https://github.com/matplotlib/matplotlib/issues/31130\nMerge Request: https://github.com/matplotlib/matplotlib/pull/31132\nOpenClaw Joins OpenAI: https://www.itnews.com.au/news/openclaw-founder-joins-openai-623662\nAI Blog Post 1: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-gatekeeping-in-open-source-the-scott-shambaugh-story.html\nAI Blog Post 2: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-matplotlib-truce-and-lessons.html\nScott Blog Post 1: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me/\nArs Technica Article: https://web.archive.org/web/20260213194851/https://arstechnica.com/ai/2026/02/after-a-routine-code-rejection-an-ai-agent-published-a-hit-piece-on-someone-by-name/\nScott Blog Post 2: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me-part-2/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#AI #OpenSource #Developer #SoftwareDeveloper #Programmer\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "When AI Agents Try To Ruin Your Career", "fMoUE59H9bs", 1382, false, "https://www.youtube.com/watch?v=fMoUE59H9bs", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021700_When AI Agents Try To Ruin Your Career.mp4", false, 30, ~U[2026-02-17 16:30:28Z]] 05:39:15.656 [debug] QUERY OK source="sources" db=1.2ms idle=225.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:39:15.657 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.2ms idle=23.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] 05:39:15.658 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=23.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 [2290238] 05:39:15.659 [debug] Current batch of media processed. Will check again in 1000ms 05:39:16.659 [debug] Current batch of media processed. Will check again in 1000ms 05:39:17.660 [debug] Current batch of media processed. Will check again in 1000ms 05:39:18.661 [debug] Current batch of media processed. Will check again in 1000ms 05:39:19.663 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "You probably know that you should be safe whilst using the AUR on Arch Linux but how does one go about doing that.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nAUR Post: https://bertptrs.nl/2026/01/30/how-to-review-an-aur-package.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#Linux #ArchLinux #FOSS #OpenSource #LinuxDistro\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 1155, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021600_Staying Safe On Arch Linux.mp4", "id" => "bTKATeeQlvM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=bTKATeeQlvM", "playlist_index" => 11, "timestamp" => 1771259411, "title" => "Staying Safe On Arch Linux", "upload_date" => "20260216"} 05:39:19.664 [debug] QUERY OK source="sources" db=0.4ms idle=224.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] 05:39:19.664 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=150.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:39:19.675 [debug] QUERY OK source="media_items" db=9.6ms idle=150.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-16 16:30:11Z], 30] 05:39:19.678 [debug] QUERY OK source="media_items" db=2.4ms queue=0.1ms idle=160.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 probably know that you should be safe whilst using the AUR on Arch Linux but how does one go about doing that.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nAUR Post: https://bertptrs.nl/2026/01/30/how-to-review-an-aur-package.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#Linux #ArchLinux #FOSS #OpenSource #LinuxDistro\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Staying Safe On Arch Linux", "7a509e3c-d9fd-4dab-8f7c-a67322e73973", "bTKATeeQlvM", 1155, false, "https://www.youtube.com/watch?v=bTKATeeQlvM", 11, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021600_Staying Safe On Arch Linux.mp4", false, false, false, 30, [], 98, ~U[2026-02-16 16:30:11Z], ~U[2026-03-01 11:39:19Z], ~U[2026-03-01 11:39:19Z], "You probably know that you should be safe whilst using the AUR on Arch Linux but how does one go about doing that.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nAUR Post: https://bertptrs.nl/2026/01/30/how-to-review-an-aur-package.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#Linux #ArchLinux #FOSS #OpenSource #LinuxDistro\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Staying Safe On Arch Linux", "bTKATeeQlvM", 1155, false, "https://www.youtube.com/watch?v=bTKATeeQlvM", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021600_Staying Safe On Arch Linux.mp4", false, 30, ~U[2026-02-16 16:30:11Z]] 05:39:19.679 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:39:19.680 [debug] QUERY OK source="media_profiles" db=0.4ms idle=15.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] 05:39:19.681 [debug] QUERY OK source="media_items" db=0.4ms idle=15.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 [2282382] 05:39:19.681 [debug] Current batch of media processed. Will check again in 1000ms 05:39:20.682 [debug] Current batch of media processed. Will check again in 1000ms 05:39:21.683 [debug] Current batch of media processed. Will check again in 1000ms 05:39:22.684 [debug] Current batch of media processed. Will check again in 1000ms 05:39:23.686 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Debian is a very important project in the world of Linux but they're going through a bit of a crisis of being Debian, having old systems that people don't want to get involved in and a slow drain of maintainers\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nDebian Linux Bugs: https://www.debian.org/Bugs/\nBug Tracker News: https://www.phoronix.com/news/Debian-Bug-Tracker-2026-Woes\n25 Year Old Report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=78526\nCall For Volunteers: https://lists.debian.org/debian-devel-announce/2026/01/msg00001.html\nMaintainers: https://www.debian.org/intro/organization#data-protection\nQuitting Maintainers: https://lists.debian.org/debian-devel-announce/2026/02/msg00000.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\n#Debian #Linux #LinuxDistro #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" => 1307, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021500_Debian Linux Is Going Through A Crisis.mp4", "id" => "ldoHviThNqQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ldoHviThNqQ", "playlist_index" => 12, "timestamp" => 1771173029, "title" => "Debian Linux Is Going Through A Crisis", "upload_date" => "20260215"} 05:39:23.687 [debug] QUERY OK source="sources" db=0.3ms 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 (?)) [30] 05:39:23.688 [debug] QUERY OK source="sources" db=0.4ms 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] 05:39:23.699 [debug] QUERY OK source="media_items" db=11.2ms idle=173.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-15 16:30:29Z], 30] 05:39:23.703 [debug] QUERY OK source="media_items" db=3.0ms idle=185.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" ["Debian is a very important project in the world of Linux but they're going through a bit of a crisis of being Debian, having old systems that people don't want to get involved in and a slow drain of maintainers\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nDebian Linux Bugs: https://www.debian.org/Bugs/\nBug Tracker News: https://www.phoronix.com/news/Debian-Bug-Tracker-2026-Woes\n25 Year Old Report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=78526\nCall For Volunteers: https://lists.debian.org/debian-devel-announce/2026/01/msg00001.html\nMaintainers: https://www.debian.org/intro/organization#data-protection\nQuitting Maintainers: https://lists.debian.org/debian-devel-announce/2026/02/msg00000.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\n#Debian #Linux #LinuxDistro #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.", "Debian Linux Is Going Through A Crisis", "05921203-760e-46af-860e-50dfb06958a0", "ldoHviThNqQ", 1307, false, "https://www.youtube.com/watch?v=ldoHviThNqQ", 12, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021500_Debian Linux Is Going Through A Crisis.mp4", false, false, false, 30, [], 98, ~U[2026-02-15 16:30:29Z], ~U[2026-03-01 11:39:23Z], ~U[2026-03-01 11:39:23Z], "Debian is a very important project in the world of Linux but they're going through a bit of a crisis of being Debian, having old systems that people don't want to get involved in and a slow drain of maintainers\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nDebian Linux Bugs: https://www.debian.org/Bugs/\nBug Tracker News: https://www.phoronix.com/news/Debian-Bug-Tracker-2026-Woes\n25 Year Old Report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=78526\nCall For Volunteers: https://lists.debian.org/debian-devel-announce/2026/01/msg00001.html\nMaintainers: https://www.debian.org/intro/organization#data-protection\nQuitting Maintainers: https://lists.debian.org/debian-devel-announce/2026/02/msg00000.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\n#Debian #Linux #LinuxDistro #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.", "Debian Linux Is Going Through A Crisis", "ldoHviThNqQ", 1307, false, "https://www.youtube.com/watch?v=ldoHviThNqQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021500_Debian Linux Is Going Through A Crisis.mp4", false, 30, ~U[2026-02-15 16:30:29Z]] 05:39:23.704 [debug] QUERY OK source="sources" db=0.6ms idle=189.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] 05:39:23.706 [debug] QUERY OK source="media_profiles" db=0.5ms queue=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] 05:39:23.707 [debug] QUERY OK source="media_items" db=0.6ms idle=18.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 [2274547] 05:39:23.707 [debug] Current batch of media processed. Will check again in 1000ms 05:39:24.708 [debug] Current batch of media processed. Will check again in 1000ms 05:39:25.709 [debug] Current batch of media processed. Will check again in 1000ms 05:39:26.710 [debug] Current batch of media processed. Will check again in 1000ms 05:39:27.712 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A few months back we saw the release of COSMIC Epoch 1 the first full release of the COSMIC Desktop and now we have the roadmap for the upcoming COSMIC Epochs 2 and 3.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCOSMIC Roadmap: https://blog.system76.com/post/cosmic-epoch-2-and-3-roadmap\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Wayland #LinuxDesktop #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" => 1298, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021400_COSMIC Desktop Epoch 2 And 3 Change Everything.mp4", "id" => "wai6XsiIrLo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=wai6XsiIrLo", "playlist_index" => 13, "timestamp" => 1771086632, "title" => "COSMIC Desktop Epoch 2 And 3 Change Everything", "upload_date" => "20260214"} 05:39:27.713 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=255.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:39:27.714 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [30] 05:39:27.724 [debug] QUERY OK source="media_items" db=10.3ms idle=199.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-14 16:30:32Z], 30] 05:39:27.734 [debug] QUERY OK source="media_items" db=8.4ms queue=0.1ms 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" ["A few months back we saw the release of COSMIC Epoch 1 the first full release of the COSMIC Desktop and now we have the roadmap for the upcoming COSMIC Epochs 2 and 3.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCOSMIC Roadmap: https://blog.system76.com/post/cosmic-epoch-2-and-3-roadmap\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Wayland #LinuxDesktop #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.", "COSMIC Desktop Epoch 2 And 3 Change Everything", "20b931dc-884e-42a0-931c-0ced578b312b", "wai6XsiIrLo", 1298, false, "https://www.youtube.com/watch?v=wai6XsiIrLo", 13, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021400_COSMIC Desktop Epoch 2 And 3 Change Everything.mp4", false, false, false, 30, [], 98, ~U[2026-02-14 16:30:32Z], ~U[2026-03-01 11:39:27Z], ~U[2026-03-01 11:39:27Z], "A few months back we saw the release of COSMIC Epoch 1 the first full release of the COSMIC Desktop and now we have the roadmap for the upcoming COSMIC Epochs 2 and 3.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCOSMIC Roadmap: https://blog.system76.com/post/cosmic-epoch-2-and-3-roadmap\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Wayland #LinuxDesktop #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.", "COSMIC Desktop Epoch 2 And 3 Change Everything", "wai6XsiIrLo", 1298, false, "https://www.youtube.com/watch?v=wai6XsiIrLo", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021400_COSMIC Desktop Epoch 2 And 3 Change Everything.mp4", false, 30, ~U[2026-02-14 16:30:32Z]] 05:39:27.735 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=219.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] 05:39:27.736 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=22.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] 05:39:27.737 [debug] QUERY OK source="media_items" db=0.5ms idle=22.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 [2266970] 05:39:27.737 [debug] Current batch of media processed. Will check again in 1000ms 05:39:28.738 [debug] Current batch of media processed. Will check again in 1000ms 05:39:29.739 [debug] Current batch of media processed. Will check again in 1000ms 05:39:30.740 [debug] Current batch of media processed. Will check again in 1000ms 05:39:31.742 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Linux From Scatch is a project that every Linux user should try at least once but recently they had to make the controversial change of dropping the SysV or System V book in favour of just Systemd due to increased workload and lack of maintainers.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPhoronix Article: https://www.phoronix.com/news/LFS-Dropping-SysVinit\nLFS OpenRC: https://linuxfromscratch.org/~zeckma/lfs-openrc/\nAnnouncement: https://lists.linuxfromscratch.org/sympa/arc/lfs-dev/2026-02/msg00002.html\nSecond Thread: https://lists.linuxfromscratch.org/sympa/arc/blfs-dev/2026-02/msg00001.html\nSysvLFS Project: https://github.com/MymeType/sysvlfs\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#LinuxFromScratch #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 978, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021200_Linux From Scratch Drops SysV In Favour Of Pure Systemd.mp4", "id" => "OHyWs323uPc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=OHyWs323uPc", "playlist_index" => 14, "timestamp" => 1770913819, "title" => "Linux From Scratch Drops SysV In Favour Of Pure Systemd", "upload_date" => "20260212"} 05:39:31.743 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=275.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] 05:39:31.744 [debug] QUERY OK source="sources" db=0.5ms queue=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" = ?) [30] 05:39:31.761 [debug] QUERY OK source="media_items" db=15.8ms queue=0.1ms idle=230.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-12 16:30:19Z], 30] 05:39:31.767 [debug] QUERY OK source="media_items" db=4.4ms queue=0.1ms idle=247.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" ["Linux From Scatch is a project that every Linux user should try at least once but recently they had to make the controversial change of dropping the SysV or System V book in favour of just Systemd due to increased workload and lack of maintainers.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPhoronix Article: https://www.phoronix.com/news/LFS-Dropping-SysVinit\nLFS OpenRC: https://linuxfromscratch.org/~zeckma/lfs-openrc/\nAnnouncement: https://lists.linuxfromscratch.org/sympa/arc/lfs-dev/2026-02/msg00002.html\nSecond Thread: https://lists.linuxfromscratch.org/sympa/arc/blfs-dev/2026-02/msg00001.html\nSysvLFS Project: https://github.com/MymeType/sysvlfs\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#LinuxFromScratch #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 From Scratch Drops SysV In Favour Of Pure Systemd", "a0212be7-f506-4044-9398-0e629f7ae2c7", "OHyWs323uPc", 978, false, "https://www.youtube.com/watch?v=OHyWs323uPc", 14, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021200_Linux From Scratch Drops SysV In Favour Of Pure Systemd.mp4", false, false, false, 30, [], 98, ~U[2026-02-12 16:30:19Z], ~U[2026-03-01 11:39:31Z], ~U[2026-03-01 11:39:31Z], "Linux From Scatch is a project that every Linux user should try at least once but recently they had to make the controversial change of dropping the SysV or System V book in favour of just Systemd due to increased workload and lack of maintainers.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPhoronix Article: https://www.phoronix.com/news/LFS-Dropping-SysVinit\nLFS OpenRC: https://linuxfromscratch.org/~zeckma/lfs-openrc/\nAnnouncement: https://lists.linuxfromscratch.org/sympa/arc/lfs-dev/2026-02/msg00002.html\nSecond Thread: https://lists.linuxfromscratch.org/sympa/arc/blfs-dev/2026-02/msg00001.html\nSysvLFS Project: https://github.com/MymeType/sysvlfs\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#LinuxFromScratch #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 From Scratch Drops SysV In Favour Of Pure Systemd", "OHyWs323uPc", 978, false, "https://www.youtube.com/watch?v=OHyWs323uPc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021200_Linux From Scratch Drops SysV In Favour Of Pure Systemd.mp4", false, 30, ~U[2026-02-12 16:30:19Z]] 05:39:31.768 [debug] QUERY OK source="sources" db=0.9ms idle=253.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:39:31.770 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=25.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] 05:39:31.771 [debug] QUERY OK source="media_items" db=0.8ms idle=26.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 [2251261] 05:39:31.771 [debug] Current batch of media processed. Will check again in 1000ms 05:39:32.772 [debug] Current batch of media processed. Will check again in 1000ms 05:39:33.773 [debug] Current batch of media processed. Will check again in 1000ms 05:39:34.774 [debug] Current batch of media processed. Will check again in 1000ms 05:39:35.775 [debug] Current batch of media processed. Will check again in 1000ms 05:39:36.777 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "2 and half years and almost 1000 interactions later we finally see the window positioning protocol now going by xx-zones has finally been merge but what does this actually mean for Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHistorical Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/72\nProtocol 1: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/247\nProtocol 2: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/249\nCurrent Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/264\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #LinuxDesktop #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" => 1267, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021100_Wayland Positioning Protocol Is Finally Merged.mp4", "id" => "s-W7mZhx7QQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=s-W7mZhx7QQ", "playlist_index" => 15, "timestamp" => 1770827432, "title" => "Wayland Positioning Protocol Is Finally Merged", "upload_date" => "20260211"} 05:39:36.778 [debug] QUERY OK source="sources" db=0.5ms idle=1262.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:39:36.778 [debug] QUERY OK source="sources" db=0.3ms idle=1263.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] 05:39:36.789 [debug] QUERY OK source="media_items" db=10.4ms idle=1264.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-11 16:30:32Z], 30] 05:39:36.793 [debug] QUERY OK source="media_items" db=2.8ms idle=1275.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" ["2 and half years and almost 1000 interactions later we finally see the window positioning protocol now going by xx-zones has finally been merge but what does this actually mean for Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHistorical Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/72\nProtocol 1: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/247\nProtocol 2: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/249\nCurrent Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/264\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #LinuxDesktop #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.", "Wayland Positioning Protocol Is Finally Merged", "f7108ff5-d576-423d-82a7-111acee8a5da", "s-W7mZhx7QQ", 1267, false, "https://www.youtube.com/watch?v=s-W7mZhx7QQ", 15, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021100_Wayland Positioning Protocol Is Finally Merged.mp4", false, false, false, 30, [], 98, ~U[2026-02-11 16:30:32Z], ~U[2026-03-01 11:39:36Z], ~U[2026-03-01 11:39:36Z], "2 and half years and almost 1000 interactions later we finally see the window positioning protocol now going by xx-zones has finally been merge but what does this actually mean for Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHistorical Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/72\nProtocol 1: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/247\nProtocol 2: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/249\nCurrent Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/264\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #LinuxDesktop #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.", "Wayland Positioning Protocol Is Finally Merged", "s-W7mZhx7QQ", 1267, false, "https://www.youtube.com/watch?v=s-W7mZhx7QQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021100_Wayland Positioning Protocol Is Finally Merged.mp4", false, 30, ~U[2026-02-11 16:30:32Z]] 05:39:36.795 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=309.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] 05:39:36.795 [debug] QUERY OK source="media_profiles" db=0.5ms idle=17.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] 05:39:36.797 [debug] QUERY OK source="media_items" db=0.5ms idle=17.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [2243348] 05:39:36.797 [debug] Current batch of media processed. Will check again in 1000ms 05:39:37.797 [debug] Current batch of media processed. Will check again in 1000ms 05:39:38.798 [debug] Current batch of media processed. Will check again in 1000ms 05:39:39.800 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "We've had a lot positive coverage of Linux as of late so why not have something a little bit more on the negative side, recently The Verge put out this piece on Linux and it has been making the rounds.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVerge Article: https://archive.is/eQJnd\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #OpenSource #FOSS #LinuxDesktop #LinuxDistro\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 1691, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021000_He Tried Linux, It Was A Mistake.mp4", "id" => "vncr11f6niw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=vncr11f6niw", "playlist_index" => 16, "timestamp" => 1770741022, "title" => "He Tried Linux, It Was A Mistake", "upload_date" => "20260210"} 05:39:39.801 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1285.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] 05:39:39.802 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1287.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:39:39.815 [debug] QUERY OK source="media_items" db=12.7ms queue=0.1ms idle=1288.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-10 16:30:22Z], 30] 05:39:39.820 [debug] QUERY OK source="media_items" db=3.2ms queue=0.1ms idle=1301.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" ["We've had a lot positive coverage of Linux as of late so why not have something a little bit more on the negative side, recently The Verge put out this piece on Linux and it has been making the rounds.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVerge Article: https://archive.is/eQJnd\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #OpenSource #FOSS #LinuxDesktop #LinuxDistro\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "He Tried Linux, It Was A Mistake", "d8c44a38-cfd5-4134-a947-b85b576cad76", "vncr11f6niw", 1691, false, "https://www.youtube.com/watch?v=vncr11f6niw", 16, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021000_He Tried Linux, It Was A Mistake.mp4", false, false, false, 30, [], 98, ~U[2026-02-10 16:30:22Z], ~U[2026-03-01 11:39:39Z], ~U[2026-03-01 11:39:39Z], "We've had a lot positive coverage of Linux as of late so why not have something a little bit more on the negative side, recently The Verge put out this piece on Linux and it has been making the rounds.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVerge Article: https://archive.is/eQJnd\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #OpenSource #FOSS #LinuxDesktop #LinuxDistro\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "He Tried Linux, It Was A Mistake", "vncr11f6niw", 1691, false, "https://www.youtube.com/watch?v=vncr11f6niw", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021000_He Tried Linux, It Was A Mistake.mp4", false, 30, ~U[2026-02-10 16:30:22Z]] 05:39:39.821 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=327.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:39:39.822 [debug] QUERY OK source="media_profiles" db=0.7ms idle=20.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] 05:39:39.824 [debug] QUERY OK source="media_items" db=0.7ms idle=21.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 [2235638] 05:39:39.824 [debug] Current batch of media processed. Will check again in 1000ms 05:39:40.825 [debug] Current batch of media processed. Will check again in 1000ms 05:39:41.176 [info] {"source":"oban","duration":19559,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:39:41.826 [debug] Current batch of media processed. Will check again in 1000ms 05:39:42.827 [debug] Current batch of media processed. Will check again in 1000ms 05:39:43.829 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Rather than constantly breaking your Linux system and treating it like a lab or a test bench, there's probably a better way to do things.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHow To Geek Article: https://www.howtogeek.com/please-stop-screwing-with-your-daily-driver-linux-pc/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop #OpenSource #FOSS #ArchLinux #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 833, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020900_Stop Constantly Breaking Your Linux Desktop.mp4", "id" => "PKSb1VqPbFc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PKSb1VqPbFc", "playlist_index" => 17, "timestamp" => 1770654618, "title" => "Stop Constantly Breaking Your Linux Desktop", "upload_date" => "20260209"} 05:39:43.830 [debug] QUERY OK source="sources" db=0.4ms idle=1315.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:39:43.830 [debug] QUERY OK source="sources" db=0.3ms idle=328.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:39:43.842 [debug] QUERY OK source="media_items" db=10.9ms queue=0.1ms idle=316.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 16:30:18Z], 30] 05:39:43.846 [debug] QUERY OK source="media_items" db=2.7ms idle=328.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" ["Rather than constantly breaking your Linux system and treating it like a lab or a test bench, there's probably a better way to do things.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHow To Geek Article: https://www.howtogeek.com/please-stop-screwing-with-your-daily-driver-linux-pc/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop #OpenSource #FOSS #ArchLinux #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Stop Constantly Breaking Your Linux Desktop", "55e087e0-1e01-4244-b7b3-03d5e1f95ec7", "PKSb1VqPbFc", 833, false, "https://www.youtube.com/watch?v=PKSb1VqPbFc", 17, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020900_Stop Constantly Breaking Your Linux Desktop.mp4", false, false, false, 30, [], 98, ~U[2026-02-09 16:30:18Z], ~U[2026-03-01 11:39:43Z], ~U[2026-03-01 11:39:43Z], "Rather than constantly breaking your Linux system and treating it like a lab or a test bench, there's probably a better way to do things.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHow To Geek Article: https://www.howtogeek.com/please-stop-screwing-with-your-daily-driver-linux-pc/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop #OpenSource #FOSS #ArchLinux #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Stop Constantly Breaking Your Linux Desktop", "PKSb1VqPbFc", 833, false, "https://www.youtube.com/watch?v=PKSb1VqPbFc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020900_Stop Constantly Breaking Your Linux Desktop.mp4", false, 30, ~U[2026-02-09 16:30:18Z]] 05:39:43.847 [debug] QUERY OK source="sources" db=1.1ms idle=331.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:39:43.848 [debug] QUERY OK source="media_profiles" db=0.4ms idle=17.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] 05:39:43.849 [debug] QUERY OK source="media_items" db=0.5ms idle=17.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 [2227703] 05:39:43.849 [debug] Current batch of media processed. Will check again in 1000ms 05:39:44.850 [debug] Current batch of media processed. Will check again in 1000ms 05:39:45.851 [debug] Current batch of media processed. Will check again in 1000ms 05:39:46.852 [debug] Current batch of media processed. Will check again in 1000ms 05:39:47.854 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "It's been a work in progress for a year now and it's stable enough as well as there being packages for the KDE 1 revival project, called MiDE powered by a Qt 2 fork called Osiris.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nYear Old Post: https://www.reddit.com/r/linux/comments/1htnhwq/software_left_in_nostalgialand_dead_software/\nRecent Post: https://www.reddit.com/r/linux/comments/1q17svp/midesktop_kde1_fork_development_preview_release/\nMiDE: https://libranext.com/midesktop/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Qt #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" => 693, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020800_Try Out The KDE 1 Revival Project.mp4", "id" => "aj68Zc0WS5c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=aj68Zc0WS5c", "playlist_index" => 18, "timestamp" => 1770568201, "title" => "Try Out The KDE 1 Revival Project", "upload_date" => "20260208"} 05:39:47.854 [debug] QUERY OK source="sources" db=0.4ms idle=343.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:39:47.855 [debug] QUERY OK source="sources" db=0.3ms idle=340.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:39:47.865 [debug] QUERY OK source="media_items" db=9.5ms idle=341.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-08 16:30:01Z], 30] 05:39:47.869 [debug] QUERY OK source="media_items" db=2.8ms idle=351.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" ["It's been a work in progress for a year now and it's stable enough as well as there being packages for the KDE 1 revival project, called MiDE powered by a Qt 2 fork called Osiris.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nYear Old Post: https://www.reddit.com/r/linux/comments/1htnhwq/software_left_in_nostalgialand_dead_software/\nRecent Post: https://www.reddit.com/r/linux/comments/1q17svp/midesktop_kde1_fork_development_preview_release/\nMiDE: https://libranext.com/midesktop/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Qt #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.", "Try Out The KDE 1 Revival Project", "471ce891-fc21-4f1f-a5b6-ff66c33a7e1c", "aj68Zc0WS5c", 693, false, "https://www.youtube.com/watch?v=aj68Zc0WS5c", 18, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020800_Try Out The KDE 1 Revival Project.mp4", false, false, false, 30, [], 98, ~U[2026-02-08 16:30:01Z], ~U[2026-03-01 11:39:47Z], ~U[2026-03-01 11:39:47Z], "It's been a work in progress for a year now and it's stable enough as well as there being packages for the KDE 1 revival project, called MiDE powered by a Qt 2 fork called Osiris.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nYear Old Post: https://www.reddit.com/r/linux/comments/1htnhwq/software_left_in_nostalgialand_dead_software/\nRecent Post: https://www.reddit.com/r/linux/comments/1q17svp/midesktop_kde1_fork_development_preview_release/\nMiDE: https://libranext.com/midesktop/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Qt #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.", "Try Out The KDE 1 Revival Project", "aj68Zc0WS5c", 693, false, "https://www.youtube.com/watch?v=aj68Zc0WS5c", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020800_Try Out The KDE 1 Revival Project.mp4", false, 30, ~U[2026-02-08 16:30:01Z]] 05:39:47.870 [debug] QUERY OK source="sources" db=0.4ms idle=355.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:39:47.871 [debug] QUERY OK source="media_profiles" db=0.4ms idle=15.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] 05:39:47.872 [debug] QUERY OK source="media_items" db=0.6ms idle=15.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 [2219799] 05:39:47.872 [debug] Current batch of media processed. Will check again in 1000ms 05:39:48.873 [debug] Current batch of media processed. Will check again in 1000ms 05:39:49.874 [debug] Current batch of media processed. Will check again in 1000ms 05:39:50.875 [debug] Current batch of media processed. Will check again in 1000ms 05:39:51.877 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A few months back Duckstation's developer Stenzek decided to pull support for the Arch Linux package and now we're seeing a new check and the same thing being done to NixOS\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlocking Arch: https://www.reddit.com/r/linux_gaming/comments/1mcofl4/duckstation_author_now_actively_blocking_arch/\nDuckstation Git AUR: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=duckstation-git\nPolyform Licence: https://polyformproject.org/licenses/strict/1.0.0/\nCC BY-NC-ND: https://creativecommons.org/licenses/by-nc-nd/4.0/deed.en\nDuckstation New Change: https://github.com/stenzek/duckstation/commit/64d13882479e5598a1276e273d231c95a094158c\nNix Issue 1: https://github.com/NixOS/nixpkgs/issues/341915 \nNix Issue 2: https://github.com/NixOS/nixpkgs/issues/342570\nComment 1: https://www.reddit.com/r/EmulationOnAndroid/comments/1e5337f/comment/ldkttbj/?share_id=-ZppjwRdTcRrJDhRl6hh5&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1 \nComment 2: https://www.reddit.com/r/EmulationOnAndroid/comments/152nduz/comment/jskkkl7/?share_id=GK1l1osSFPxMuKHLWvP49&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Duckstation #OpenSource #FOSS #ArchLinux #Linux\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 1053, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020700_Duckstation Is Back At It Again.mp4", "id" => "2OMxCC6BFxE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=2OMxCC6BFxE", "playlist_index" => 19, "timestamp" => 1770481801, "title" => "Duckstation Is Back At It Again", "upload_date" => "20260207"} 05:39:51.878 [debug] QUERY OK source="sources" db=0.4ms idle=362.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:39:51.878 [debug] QUERY OK source="sources" db=0.2ms idle=363.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:39:51.889 [debug] QUERY OK source="media_items" db=10.3ms queue=0.1ms idle=364.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-07 16:30:01Z], 30] 05:39:51.894 [debug] QUERY OK source="media_items" db=3.3ms idle=375.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 few months back Duckstation's developer Stenzek decided to pull support for the Arch Linux package and now we're seeing a new check and the same thing being done to NixOS\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlocking Arch: https://www.reddit.com/r/linux_gaming/comments/1mcofl4/duckstation_author_now_actively_blocking_arch/\nDuckstation Git AUR: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=duckstation-git\nPolyform Licence: https://polyformproject.org/licenses/strict/1.0.0/\nCC BY-NC-ND: https://creativecommons.org/licenses/by-nc-nd/4.0/deed.en\nDuckstation New Change: https://github.com/stenzek/duckstation/commit/64d13882479e5598a1276e273d231c95a094158c\nNix Issue 1: https://github.com/NixOS/nixpkgs/issues/341915 \nNix Issue 2: https://github.com/NixOS/nixpkgs/issues/342570\nComment 1: https://www.reddit.com/r/EmulationOnAndroid/comments/1e5337f/comment/ldkttbj/?share_id=-ZppjwRdTcRrJDhRl6hh5&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1 \nComment 2: https://www.reddit.com/r/EmulationOnAndroid/comments/152nduz/comment/jskkkl7/?share_id=GK1l1osSFPxMuKHLWvP49&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Duckstation #OpenSource #FOSS #ArchLinux #Linux\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Duckstation Is Back At It Again", "cff3fd3e-6ab8-4385-8f3d-6894e4c9db8f", "2OMxCC6BFxE", 1053, false, "https://www.youtube.com/watch?v=2OMxCC6BFxE", 19, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020700_Duckstation Is Back At It Again.mp4", false, false, false, 30, [], 98, ~U[2026-02-07 16:30:01Z], ~U[2026-03-01 11:39:51Z], ~U[2026-03-01 11:39:51Z], "A few months back Duckstation's developer Stenzek decided to pull support for the Arch Linux package and now we're seeing a new check and the same thing being done to NixOS\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlocking Arch: https://www.reddit.com/r/linux_gaming/comments/1mcofl4/duckstation_author_now_actively_blocking_arch/\nDuckstation Git AUR: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=duckstation-git\nPolyform Licence: https://polyformproject.org/licenses/strict/1.0.0/\nCC BY-NC-ND: https://creativecommons.org/licenses/by-nc-nd/4.0/deed.en\nDuckstation New Change: https://github.com/stenzek/duckstation/commit/64d13882479e5598a1276e273d231c95a094158c\nNix Issue 1: https://github.com/NixOS/nixpkgs/issues/341915 \nNix Issue 2: https://github.com/NixOS/nixpkgs/issues/342570\nComment 1: https://www.reddit.com/r/EmulationOnAndroid/comments/1e5337f/comment/ldkttbj/?share_id=-ZppjwRdTcRrJDhRl6hh5&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1 \nComment 2: https://www.reddit.com/r/EmulationOnAndroid/comments/152nduz/comment/jskkkl7/?share_id=GK1l1osSFPxMuKHLWvP49&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Duckstation #OpenSource #FOSS #ArchLinux #Linux\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Duckstation Is Back At It Again", "2OMxCC6BFxE", 1053, false, "https://www.youtube.com/watch?v=2OMxCC6BFxE", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020700_Duckstation Is Back At It Again.mp4", false, 30, ~U[2026-02-07 16:30:01Z]] 05:39:51.895 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=374.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:39:51.896 [debug] QUERY OK source="media_profiles" db=0.4ms idle=17.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] 05:39:51.897 [debug] QUERY OK source="media_items" db=0.5ms idle=17.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 [2211971] 05:39:51.897 [debug] Current batch of media processed. Will check again in 1000ms 05:39:52.897 [debug] Current batch of media processed. Will check again in 1000ms 05:39:53.898 [debug] Current batch of media processed. Will check again in 1000ms 05:39:54.899 [debug] Current batch of media processed. Will check again in 1000ms 05:39:55.536 [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/f7/39/f73924248f0f77f9d00e84f8918a8b617eb197457e52396b277c0af0e1e5e824.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/fe/f2/fef21097538193dfef7a3208255654492fa9b890e47af4ef677a143b7dd96bc3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 05:39:55.537 [debug] Gracefully stopping file follower 05:39:55.538 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms 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" IN (?)) [30] 05:39:55.539 [debug] QUERY OK source="sources" db=0.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:39:55.552 [debug] QUERY OK source="media_items" db=12.7ms idle=25.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 16:30:16Z], 30] 05:39:55.556 [debug] QUERY OK source="media_items" db=2.9ms queue=0.1ms idle=38.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" ["RAM Pricing is absolutely insane, storage is following along, nobody is buying computers anymore and the industry is an absolute mess\n\n==========Support The Channel==========\n► Patreon: https://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#SteamMachine #linux #Computer #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.", "No One Is Buying Computers Anymore", "e6cc70b9-fb13-4030-ab97-623ae9dae886", "iPyTLOySnSc", 1120, false, "https://www.youtube.com/watch?v=iPyTLOySnSc", 1, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022800_No One Is Buying Computers Anymore.mp4", false, false, false, 30, [], 98, ~U[2026-02-28 16:30:16Z], ~U[2026-03-01 11:39:55Z], ~U[2026-03-01 11:39:55Z], "RAM Pricing is absolutely insane, storage is following along, nobody is buying computers anymore and the industry is an absolute mess\n\n==========Support The Channel==========\n► Patreon: https://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#SteamMachine #linux #Computer #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.", "No One Is Buying Computers Anymore", "iPyTLOySnSc", 1120, false, "https://www.youtube.com/watch?v=iPyTLOySnSc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022800_No One Is Buying Computers Anymore.mp4", false, 30, ~U[2026-02-28 16:30:16Z]] 05:39:55.557 [debug] QUERY OK source="sources" db=0.7ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:39:55.570 [debug] QUERY OK source="media_items" db=11.6ms 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-26 22:28:58Z], 30] 05:39:55.575 [debug] QUERY OK source="media_items" db=3.8ms idle=31.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" ["By now you probably know about Kent Overstreet's antics in the Linux kernel with BcacheFS but we're not here to talk about that today, instead we're here to talk his AI chat bot which he is convinced is sentient and feels real emotion.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWebsite: https://poc.bcachefs.org/\nWhite Paper: https://poc.bcachefs.org/paper.pdf\nThe Register: https://www.theregister.com/2026/02/25/bcachefs_creator_ai/\nReddit Post: https://www.reddit.com/r/bcachefs/comments/1rblll1/the_blog_of_an_llm_saying_its_owned_by_kent_and/\nFunny Thread: https://social.vlhl.dev/notice/B3gj1a7Xfl0evR4Hke\nIRC Logs: https://paste.xinu.at/6atmCN\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AI #LLM #Linux #LinuxKernel #FOSS #OpenSource\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "BCacheFS Developer Deployed His AI Girlfriend Helper", "cf43b38d-1d6a-4fc0-9496-7ac07165f402", "oOzDI3mCv58", 1702, false, "https://www.youtube.com/watch?v=oOzDI3mCv58", 2, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022600_BCacheFS Developer Deployed His AI Girlfriend Helper.mp4", false, false, false, 30, [], 98, ~U[2026-02-26 22:28:58Z], ~U[2026-03-01 11:39:55Z], ~U[2026-03-01 11:39:55Z], "By now you probably know about Kent Overstreet's antics in the Linux kernel with BcacheFS but we're not here to talk about that today, instead we're here to talk his AI chat bot which he is convinced is sentient and feels real emotion.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWebsite: https://poc.bcachefs.org/\nWhite Paper: https://poc.bcachefs.org/paper.pdf\nThe Register: https://www.theregister.com/2026/02/25/bcachefs_creator_ai/\nReddit Post: https://www.reddit.com/r/bcachefs/comments/1rblll1/the_blog_of_an_llm_saying_its_owned_by_kent_and/\nFunny Thread: https://social.vlhl.dev/notice/B3gj1a7Xfl0evR4Hke\nIRC Logs: https://paste.xinu.at/6atmCN\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AI #LLM #Linux #LinuxKernel #FOSS #OpenSource\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "BCacheFS Developer Deployed His AI Girlfriend Helper", "oOzDI3mCv58", 1702, false, "https://www.youtube.com/watch?v=oOzDI3mCv58", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022600_BCacheFS Developer Deployed His AI Girlfriend Helper.mp4", false, 30, ~U[2026-02-26 22:28:58Z]] 05:39:55.577 [debug] QUERY OK source="sources" db=1.7ms queue=0.1ms 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] 05:39:55.590 [debug] QUERY OK source="media_items" db=12.5ms queue=0.1ms idle=22.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-25 16:30:18Z], 30] 05:39:55.596 [debug] QUERY OK source="media_items" db=3.6ms queue=0.1ms idle=33.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" ["For a long time Ladybird browser was going to adopt Swift lang but recently they did a port over to Rust and not just that, used AI to start off the port and this lead to a bit of controversy.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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://ladybird.org/posts/adopting-rust/\nLadybird Swift Issue: https://github.com/LadybirdBrowser/ladybird/issues/933\nPodcast Clip: https://www.youtube.com/watch?v=DSEZ2ZYLdHg\nTwitter Post: https://x.com/awesomekling/status/1822241531501162806\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Rust #Swift #Ladybird #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.", "Ladybird Browser Gave Up C++ For Rust Lang", "6ac4854f-315c-4ab8-a87f-c7f667ae10c1", "lBd5QGjCcGc", 1095, false, "https://www.youtube.com/watch?v=lBd5QGjCcGc", 3, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022500_Ladybird Browser Gave Up C++ For Rust Lang.mp4", false, false, false, 30, [], 98, ~U[2026-02-25 16:30:18Z], ~U[2026-03-01 11:39:55Z], ~U[2026-03-01 11:39:55Z], "For a long time Ladybird browser was going to adopt Swift lang but recently they did a port over to Rust and not just that, used AI to start off the port and this lead to a bit of controversy.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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://ladybird.org/posts/adopting-rust/\nLadybird Swift Issue: https://github.com/LadybirdBrowser/ladybird/issues/933\nPodcast Clip: https://www.youtube.com/watch?v=DSEZ2ZYLdHg\nTwitter Post: https://x.com/awesomekling/status/1822241531501162806\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Rust #Swift #Ladybird #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.", "Ladybird Browser Gave Up C++ For Rust Lang", "lBd5QGjCcGc", 1095, false, "https://www.youtube.com/watch?v=lBd5QGjCcGc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022500_Ladybird Browser Gave Up C++ For Rust Lang.mp4", false, 30, ~U[2026-02-25 16:30:18Z]] 05:39:55.598 [debug] QUERY OK source="sources" db=1.6ms queue=0.1ms 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" = ?) [30] 05:39:55.611 [debug] QUERY OK source="media_items" db=12.4ms queue=0.1ms idle=23.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 16:30:16Z], 30] 05:39:55.616 [debug] QUERY OK source="media_items" db=4.0ms idle=34.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 probably know that HDMI 2.1 is a no go on Linux with an AMD GPU, well that's only if you're an HDMI Forum member, who says you have to listen to there rules if you just reverse engineer the support.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHDMI 2.1 FRL Work: https://github.com/mkopec/linux/\nReddit Post: https://www.reddit.com/r/linux_gaming/comments/1r793et/hdmi_21_frl_looking_for_testers/\nXilinux Article: https://www.phoronix.com/news/AMDGPU-HDMI-2.1-But-Xilinx\nAMD Thread: https://gitlab.freedesktop.org/drm/amd/-/issues/1417#note_3335295\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AMD #Linux #HDMI #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.", "HDMI Forum Hates This New Kernel Patch", "dc5dcca7-0ea1-4ad3-9c1e-d7f2bb6fbfa2", "N53wMB9d4As", 1021, false, "https://www.youtube.com/watch?v=N53wMB9d4As", 4, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022400_HDMI Forum Hates This New Kernel Patch.mp4", false, false, false, 30, [], 98, ~U[2026-02-24 16:30:16Z], ~U[2026-03-01 11:39:55Z], ~U[2026-03-01 11:39:55Z], "You probably know that HDMI 2.1 is a no go on Linux with an AMD GPU, well that's only if you're an HDMI Forum member, who says you have to listen to there rules if you just reverse engineer the support.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHDMI 2.1 FRL Work: https://github.com/mkopec/linux/\nReddit Post: https://www.reddit.com/r/linux_gaming/comments/1r793et/hdmi_21_frl_looking_for_testers/\nXilinux Article: https://www.phoronix.com/news/AMDGPU-HDMI-2.1-But-Xilinx\nAMD Thread: https://gitlab.freedesktop.org/drm/amd/-/issues/1417#note_3335295\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AMD #Linux #HDMI #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.", "HDMI Forum Hates This New Kernel Patch", "N53wMB9d4As", 1021, false, "https://www.youtube.com/watch?v=N53wMB9d4As", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022400_HDMI Forum Hates This New Kernel Patch.mp4", false, 30, ~U[2026-02-24 16:30:16Z]] 05:39:55.619 [debug] QUERY OK source="sources" db=1.7ms 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" = ?) [30] 05:39:55.632 [debug] QUERY OK source="media_items" db=12.4ms queue=0.1ms idle=24.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-23 16:30:02Z], 30] 05:39:55.636 [debug] QUERY OK source="media_items" db=3.3ms idle=34.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're on Linux you've probably written at least a couple of Bash shell scripts, but what if there was another way to do it, a node based way where you didn't have to write any code by hand.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVish Github: https://github.com/Lluciocc/Vish\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Bash #Zsh #Programming #shellscripting \n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Most Unique Way To Make Bash Shell Scripts", "fce8cf7c-ae6a-4731-9702-4a69e2b5fe94", "5SLDNN5DP_o", 867, false, "https://www.youtube.com/watch?v=5SLDNN5DP_o", 5, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022300_The Most Unique Way To Make Bash Shell Scripts.mp4", false, false, false, 30, [], 98, ~U[2026-02-23 16:30:02Z], ~U[2026-03-01 11:39:55Z], ~U[2026-03-01 11:39:55Z], "If you're on Linux you've probably written at least a couple of Bash shell scripts, but what if there was another way to do it, a node based way where you didn't have to write any code by hand.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVish Github: https://github.com/Lluciocc/Vish\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Bash #Zsh #Programming #shellscripting \n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Most Unique Way To Make Bash Shell Scripts", "5SLDNN5DP_o", 867, false, "https://www.youtube.com/watch?v=5SLDNN5DP_o", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022300_The Most Unique Way To Make Bash Shell Scripts.mp4", false, 30, ~U[2026-02-23 16:30:02Z]] 05:39:55.638 [debug] QUERY OK source="sources" db=1.6ms queue=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" = ?) [30] 05:39:55.651 [debug] QUERY OK source="media_items" db=12.2ms idle=23.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-22 16:30:18Z], 30] 05:39:55.657 [debug] QUERY OK source="media_items" db=4.1ms idle=33.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've probably heard that screensavers aren't possible on Wayland but that's not actually the case, not only are they possible but there are options available to use like XScreensaver even on Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWayland Screensaver: https://www.jwz.org/blog/2023/09/wayland-and-screen-savers/\nXscreensaver 6.11: https://www.jwz.org/blog/2025/07/xscreensaver-6-11/\nXscreensaver 6.12: https://www.jwz.org/blog/2025/07/xscreensaver-6-12/\nLinux Mint: https://blog.linuxmint.com/?p=4991\nKDE: https://invent.kde.org/plasma/kscreenlocker/-/merge_requests/207\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #FOSS #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Screensavers Are Coming To Wayland", "cab0be46-4162-4200-b1d8-00dab92fd5c9", "i6qMTnHQ9ow", 862, false, "https://www.youtube.com/watch?v=i6qMTnHQ9ow", 6, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022200_Screensavers Are Coming To Wayland.mp4", false, false, false, 30, [], 98, ~U[2026-02-22 16:30:18Z], ~U[2026-03-01 11:39:55Z], ~U[2026-03-01 11:39:55Z], "You've probably heard that screensavers aren't possible on Wayland but that's not actually the case, not only are they possible but there are options available to use like XScreensaver even on Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWayland Screensaver: https://www.jwz.org/blog/2023/09/wayland-and-screen-savers/\nXscreensaver 6.11: https://www.jwz.org/blog/2025/07/xscreensaver-6-11/\nXscreensaver 6.12: https://www.jwz.org/blog/2025/07/xscreensaver-6-12/\nLinux Mint: https://blog.linuxmint.com/?p=4991\nKDE: https://invent.kde.org/plasma/kscreenlocker/-/merge_requests/207\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #FOSS #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Screensavers Are Coming To Wayland", "i6qMTnHQ9ow", 862, false, "https://www.youtube.com/watch?v=i6qMTnHQ9ow", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022200_Screensavers Are Coming To Wayland.mp4", false, 30, ~U[2026-02-22 16:30:18Z]] 05:39:55.659 [debug] QUERY OK source="sources" db=1.8ms queue=0.1ms idle=25.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:39:55.672 [debug] QUERY OK source="media_items" db=12.4ms idle=23.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-21 16:30:12Z], 30] 05:39:55.677 [debug] QUERY OK source="media_items" db=3.7ms idle=34.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" ["Nowadays the default look of KDE Plasma is called Breeze but before that during the KDE 4 era we had both Oxygen and Air and this developer is trying to bring it back.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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 Post: https://filipfila.wordpress.com/2026/02/08/beating-an-old-but-not-dead-horse-what-to-do-with-the-oxygen-and-air-themes/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bringing KDE 4 Oxygen Back To Modern KDE", "37ce456a-5eb2-43a0-9645-3f6f60dd092c", "VplYzVNVncg", 851, false, "https://www.youtube.com/watch?v=VplYzVNVncg", 7, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022100_Bringing KDE 4 Oxygen Back To Modern KDE.mp4", false, false, false, 30, [], 98, ~U[2026-02-21 16:30:12Z], ~U[2026-03-01 11:39:55Z], ~U[2026-03-01 11:39:55Z], "Nowadays the default look of KDE Plasma is called Breeze but before that during the KDE 4 era we had both Oxygen and Air and this developer is trying to bring it back.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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 Post: https://filipfila.wordpress.com/2026/02/08/beating-an-old-but-not-dead-horse-what-to-do-with-the-oxygen-and-air-themes/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bringing KDE 4 Oxygen Back To Modern KDE", "VplYzVNVncg", 851, false, "https://www.youtube.com/watch?v=VplYzVNVncg", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022100_Bringing KDE 4 Oxygen Back To Modern KDE.mp4", false, 30, ~U[2026-02-21 16:30:12Z]] 05:39:55.679 [debug] QUERY OK source="sources" db=1.8ms 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" = ?) [30] 05:39:55.693 [debug] QUERY OK source="media_items" db=13.3ms queue=0.1ms idle=23.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-19 16:30:21Z], 30] 05:39:55.699 [debug] QUERY OK source="media_items" db=4.1ms idle=34.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 window manager space on Wayland has completely changed over the past few years, there was a time when Sway was the only good choice but now you have both Hyprland a dynamic tiler and Niri a scroller and this has changed the equation for what you can do on Wayland.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHyprland: https://hypr.land/\nNiri: https://github.com/niri-wm/niri\nKarousel: https://github.com/peterfajdiga/karousel\nRiver Repo: https://codeberg.org/river/river\nHyprland Wiki: https://wiki.hypr.land/\nNiri Wiki: https://github.com/niri-wm/niri/wiki/Configuration:-Introduction\nQuickshell: https://quickshell.org/\nMaterial Shell: https://github.com/AvengeMedia/DankMaterialShell\nNoctalia: https://github.com/noctalia-dev/noctalia-shell\nCaelestia: https://github.com/caelestia-dots/shell\nTheo Comment: https://x.com/theo/status/2018422881705984483\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Niri #Hyprland #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Hyprland And Niri Changed Wayland Forever", "bb8dee1a-1834-4cb4-b730-7fda61447b78", "jeY7xQ13v6I", 1078, false, "https://www.youtube.com/watch?v=jeY7xQ13v6I", 8, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021900_Hyprland And Niri Changed Wayland Forever.mp4", false, false, false, 30, [], 98, ~U[2026-02-19 16:30:21Z], ~U[2026-03-01 11:39:55Z], ~U[2026-03-01 11:39:55Z], "The window manager space on Wayland has completely changed over the past few years, there was a time when Sway was the only good choice but now you have both Hyprland a dynamic tiler and Niri a scroller and this has changed the equation for what you can do on Wayland.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHyprland: https://hypr.land/\nNiri: https://github.com/niri-wm/niri\nKarousel: https://github.com/peterfajdiga/karousel\nRiver Repo: https://codeberg.org/river/river\nHyprland Wiki: https://wiki.hypr.land/\nNiri Wiki: https://github.com/niri-wm/niri/wiki/Configuration:-Introduction\nQuickshell: https://quickshell.org/\nMaterial Shell: https://github.com/AvengeMedia/DankMaterialShell\nNoctalia: https://github.com/noctalia-dev/noctalia-shell\nCaelestia: https://github.com/caelestia-dots/shell\nTheo Comment: https://x.com/theo/status/2018422881705984483\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Niri #Hyprland #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Hyprland And Niri Changed Wayland Forever", "jeY7xQ13v6I", 1078, false, "https://www.youtube.com/watch?v=jeY7xQ13v6I", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021900_Hyprland And Niri Changed Wayland Forever.mp4", false, 30, ~U[2026-02-19 16:30:21Z]] 05:39:55.701 [debug] QUERY OK source="sources" db=1.6ms idle=27.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:39:55.714 [debug] QUERY OK source="media_items" db=12.7ms queue=0.1ms idle=24.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-18 16:30:00Z], 30] 05:39:55.720 [debug] QUERY OK source="media_items" db=4.3ms queue=0.1ms idle=35.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 few weeks back KDE announced that the new Plasma Login Manager was going to require the use of Systemd and thus wouldn't work on FreeBSD or the other BSDs and whilst this is true it's only about the Login Manager not the rest of KDE Plasma\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\n9to5Linux: https://9to5linux.com/kaos-linux-drops-kde-plasma-after-12-years-for-niri-noctalia-to-escape-systemd\nLinuxiac: https://linuxiac.com/kaos-2026-02-debuts-niri-wayland-desktop/\nXDA Developers: https://www.xda-developers.com/linux-distro-dropped-kde-plasma-support-tries-to-escape-systemd/\nKaOS News Post: https://kaosx.us/news/2026/kaos02/\nReddit Post: https://www.reddit.com/r/kde/comments/1r68jmi/a_quick_antifud_faq_to_debunk_the_kde_is_forcing/\nFreeBSd Wayland: https://x61.sh/log/2024/05/27052024192206-sway_openbsd.html\nNetBSD 2020: https://blog.netbsd.org/tnf/entry/wayland_on_netbsd_trials_and\nFreeBSD and NetBSD Now: https://www.youtube.com/watch?v=oo_8gnWQ4xo\nHikari: http://hikari.acmelabs.space/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Is Not Forcing Systemd Use", "8d411610-9a19-4a4b-804b-64b37a71d402", "0l29JZxzong", 843, false, "https://www.youtube.com/watch?v=0l29JZxzong", 9, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021800_KDE Plasma Is Not Forcing Systemd Use.mp4", false, false, false, 30, [], 98, ~U[2026-02-18 16:30:00Z], ~U[2026-03-01 11:39:55Z], ~U[2026-03-01 11:39:55Z], "A few weeks back KDE announced that the new Plasma Login Manager was going to require the use of Systemd and thus wouldn't work on FreeBSD or the other BSDs and whilst this is true it's only about the Login Manager not the rest of KDE Plasma\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\n9to5Linux: https://9to5linux.com/kaos-linux-drops-kde-plasma-after-12-years-for-niri-noctalia-to-escape-systemd\nLinuxiac: https://linuxiac.com/kaos-2026-02-debuts-niri-wayland-desktop/\nXDA Developers: https://www.xda-developers.com/linux-distro-dropped-kde-plasma-support-tries-to-escape-systemd/\nKaOS News Post: https://kaosx.us/news/2026/kaos02/\nReddit Post: https://www.reddit.com/r/kde/comments/1r68jmi/a_quick_antifud_faq_to_debunk_the_kde_is_forcing/\nFreeBSd Wayland: https://x61.sh/log/2024/05/27052024192206-sway_openbsd.html\nNetBSD 2020: https://blog.netbsd.org/tnf/entry/wayland_on_netbsd_trials_and\nFreeBSD and NetBSD Now: https://www.youtube.com/watch?v=oo_8gnWQ4xo\nHikari: http://hikari.acmelabs.space/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Is Not Forcing Systemd Use", "0l29JZxzong", 843, false, "https://www.youtube.com/watch?v=0l29JZxzong", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021800_KDE Plasma Is Not Forcing Systemd Use.mp4", false, 30, ~U[2026-02-18 16:30:00Z]] 05:39:55.723 [debug] QUERY OK source="sources" db=2.1ms queue=0.2ms idle=27.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:39:55.736 [debug] QUERY OK source="media_items" db=12.4ms queue=0.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-02-17 16:30:28Z], 30] 05:39:55.750 [debug] QUERY OK source="media_items" db=12.8ms queue=0.1ms idle=35.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 if I told you that an AI agent just tried to ruin the career of a developer on Matplotlib who was following Matplotlib policy to not allow AI agents, writing a hilarious blog post on the situation but it gets even better from there\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nIssue: https://github.com/matplotlib/matplotlib/issues/31130\nMerge Request: https://github.com/matplotlib/matplotlib/pull/31132\nOpenClaw Joins OpenAI: https://www.itnews.com.au/news/openclaw-founder-joins-openai-623662\nAI Blog Post 1: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-gatekeeping-in-open-source-the-scott-shambaugh-story.html\nAI Blog Post 2: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-matplotlib-truce-and-lessons.html\nScott Blog Post 1: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me/\nArs Technica Article: https://web.archive.org/web/20260213194851/https://arstechnica.com/ai/2026/02/after-a-routine-code-rejection-an-ai-agent-published-a-hit-piece-on-someone-by-name/\nScott Blog Post 2: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me-part-2/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#AI #OpenSource #Developer #SoftwareDeveloper #Programmer\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "When AI Agents Try To Ruin Your Career", "0a5af83e-0324-430b-a2a9-ce7d9fba9676", "fMoUE59H9bs", 1382, false, "https://www.youtube.com/watch?v=fMoUE59H9bs", 10, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021700_When AI Agents Try To Ruin Your Career.mp4", false, false, false, 30, [], 98, ~U[2026-02-17 16:30:28Z], ~U[2026-03-01 11:39:55Z], ~U[2026-03-01 11:39:55Z], "What if I told you that an AI agent just tried to ruin the career of a developer on Matplotlib who was following Matplotlib policy to not allow AI agents, writing a hilarious blog post on the situation but it gets even better from there\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nIssue: https://github.com/matplotlib/matplotlib/issues/31130\nMerge Request: https://github.com/matplotlib/matplotlib/pull/31132\nOpenClaw Joins OpenAI: https://www.itnews.com.au/news/openclaw-founder-joins-openai-623662\nAI Blog Post 1: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-gatekeeping-in-open-source-the-scott-shambaugh-story.html\nAI Blog Post 2: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-matplotlib-truce-and-lessons.html\nScott Blog Post 1: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me/\nArs Technica Article: https://web.archive.org/web/20260213194851/https://arstechnica.com/ai/2026/02/after-a-routine-code-rejection-an-ai-agent-published-a-hit-piece-on-someone-by-name/\nScott Blog Post 2: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me-part-2/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#AI #OpenSource #Developer #SoftwareDeveloper #Programmer\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "When AI Agents Try To Ruin Your Career", "fMoUE59H9bs", 1382, false, "https://www.youtube.com/watch?v=fMoUE59H9bs", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021700_When AI Agents Try To Ruin Your Career.mp4", false, 30, ~U[2026-02-17 16:30:28Z]] 05:39:55.753 [debug] QUERY OK source="sources" db=2.0ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:39:55.766 [debug] QUERY OK source="media_items" db=12.7ms queue=0.1ms idle=33.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-16 16:30:11Z], 30] 05:39:55.771 [debug] QUERY OK source="media_items" db=3.5ms queue=0.1ms idle=44.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 probably know that you should be safe whilst using the AUR on Arch Linux but how does one go about doing that.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nAUR Post: https://bertptrs.nl/2026/01/30/how-to-review-an-aur-package.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#Linux #ArchLinux #FOSS #OpenSource #LinuxDistro\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Staying Safe On Arch Linux", "dd8fa263-31a8-41cb-8ce3-30ddb636f8e1", "bTKATeeQlvM", 1155, false, "https://www.youtube.com/watch?v=bTKATeeQlvM", 11, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021600_Staying Safe On Arch Linux.mp4", false, false, false, 30, [], 98, ~U[2026-02-16 16:30:11Z], ~U[2026-03-01 11:39:55Z], ~U[2026-03-01 11:39:55Z], "You probably know that you should be safe whilst using the AUR on Arch Linux but how does one go about doing that.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nAUR Post: https://bertptrs.nl/2026/01/30/how-to-review-an-aur-package.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#Linux #ArchLinux #FOSS #OpenSource #LinuxDistro\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Staying Safe On Arch Linux", "bTKATeeQlvM", 1155, false, "https://www.youtube.com/watch?v=bTKATeeQlvM", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021600_Staying Safe On Arch Linux.mp4", false, 30, ~U[2026-02-16 16:30:11Z]] 05:39:55.774 [debug] QUERY OK source="sources" db=2.0ms queue=0.2ms idle=35.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:39:55.787 [debug] QUERY OK source="media_items" db=12.7ms queue=0.1ms idle=24.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-15 16:30:29Z], 30] 05:39:56.135 [debug] QUERY OK source="media_items" db=346.8ms queue=0.1ms idle=34.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" ["Debian is a very important project in the world of Linux but they're going through a bit of a crisis of being Debian, having old systems that people don't want to get involved in and a slow drain of maintainers\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nDebian Linux Bugs: https://www.debian.org/Bugs/\nBug Tracker News: https://www.phoronix.com/news/Debian-Bug-Tracker-2026-Woes\n25 Year Old Report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=78526\nCall For Volunteers: https://lists.debian.org/debian-devel-announce/2026/01/msg00001.html\nMaintainers: https://www.debian.org/intro/organization#data-protection\nQuitting Maintainers: https://lists.debian.org/debian-devel-announce/2026/02/msg00000.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\n#Debian #Linux #LinuxDistro #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.", "Debian Linux Is Going Through A Crisis", "0d191693-c45f-407d-9801-33bb9139df36", "ldoHviThNqQ", 1307, false, "https://www.youtube.com/watch?v=ldoHviThNqQ", 12, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021500_Debian Linux Is Going Through A Crisis.mp4", false, false, false, 30, [], 98, ~U[2026-02-15 16:30:29Z], ~U[2026-03-01 11:39:55Z], ~U[2026-03-01 11:39:55Z], "Debian is a very important project in the world of Linux but they're going through a bit of a crisis of being Debian, having old systems that people don't want to get involved in and a slow drain of maintainers\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nDebian Linux Bugs: https://www.debian.org/Bugs/\nBug Tracker News: https://www.phoronix.com/news/Debian-Bug-Tracker-2026-Woes\n25 Year Old Report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=78526\nCall For Volunteers: https://lists.debian.org/debian-devel-announce/2026/01/msg00001.html\nMaintainers: https://www.debian.org/intro/organization#data-protection\nQuitting Maintainers: https://lists.debian.org/debian-devel-announce/2026/02/msg00000.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\n#Debian #Linux #LinuxDistro #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.", "Debian Linux Is Going Through A Crisis", "ldoHviThNqQ", 1307, false, "https://www.youtube.com/watch?v=ldoHviThNqQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021500_Debian Linux Is Going Through A Crisis.mp4", false, 30, ~U[2026-02-15 16:30:29Z]] 05:39:56.138 [debug] QUERY OK source="sources" db=1.8ms queue=0.1ms idle=369.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] 05:39:56.152 [debug] QUERY OK source="media_items" db=13.4ms queue=0.1ms idle=367.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 16:30:32Z], 30] 05:39:56.162 [debug] QUERY OK source="media_items" db=8.2ms idle=379.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 few months back we saw the release of COSMIC Epoch 1 the first full release of the COSMIC Desktop and now we have the roadmap for the upcoming COSMIC Epochs 2 and 3.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCOSMIC Roadmap: https://blog.system76.com/post/cosmic-epoch-2-and-3-roadmap\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Wayland #LinuxDesktop #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.", "COSMIC Desktop Epoch 2 And 3 Change Everything", "4a5e6c3d-455c-4b52-9478-3b7e0e1e81d8", "wai6XsiIrLo", 1298, false, "https://www.youtube.com/watch?v=wai6XsiIrLo", 13, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021400_COSMIC Desktop Epoch 2 And 3 Change Everything.mp4", false, false, false, 30, [], 98, ~U[2026-02-14 16:30:32Z], ~U[2026-03-01 11:39:56Z], ~U[2026-03-01 11:39:56Z], "A few months back we saw the release of COSMIC Epoch 1 the first full release of the COSMIC Desktop and now we have the roadmap for the upcoming COSMIC Epochs 2 and 3.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCOSMIC Roadmap: https://blog.system76.com/post/cosmic-epoch-2-and-3-roadmap\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Wayland #LinuxDesktop #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.", "COSMIC Desktop Epoch 2 And 3 Change Everything", "wai6XsiIrLo", 1298, false, "https://www.youtube.com/watch?v=wai6XsiIrLo", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021400_COSMIC Desktop Epoch 2 And 3 Change Everything.mp4", false, 30, ~U[2026-02-14 16:30:32Z]] 05:39:56.164 [debug] QUERY OK source="sources" db=2.0ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:39:56.178 [debug] QUERY OK source="media_items" db=13.4ms queue=0.1ms idle=30.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-12 16:30:19Z], 30] 05:39:56.184 [debug] QUERY OK source="media_items" db=4.0ms queue=0.1ms idle=41.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" ["Linux From Scatch is a project that every Linux user should try at least once but recently they had to make the controversial change of dropping the SysV or System V book in favour of just Systemd due to increased workload and lack of maintainers.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPhoronix Article: https://www.phoronix.com/news/LFS-Dropping-SysVinit\nLFS OpenRC: https://linuxfromscratch.org/~zeckma/lfs-openrc/\nAnnouncement: https://lists.linuxfromscratch.org/sympa/arc/lfs-dev/2026-02/msg00002.html\nSecond Thread: https://lists.linuxfromscratch.org/sympa/arc/blfs-dev/2026-02/msg00001.html\nSysvLFS Project: https://github.com/MymeType/sysvlfs\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#LinuxFromScratch #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 From Scratch Drops SysV In Favour Of Pure Systemd", "978a0790-9812-4e97-9d02-9c1cbf354389", "OHyWs323uPc", 978, false, "https://www.youtube.com/watch?v=OHyWs323uPc", 14, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021200_Linux From Scratch Drops SysV In Favour Of Pure Systemd.mp4", false, false, false, 30, [], 98, ~U[2026-02-12 16:30:19Z], ~U[2026-03-01 11:39:56Z], ~U[2026-03-01 11:39:56Z], "Linux From Scatch is a project that every Linux user should try at least once but recently they had to make the controversial change of dropping the SysV or System V book in favour of just Systemd due to increased workload and lack of maintainers.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPhoronix Article: https://www.phoronix.com/news/LFS-Dropping-SysVinit\nLFS OpenRC: https://linuxfromscratch.org/~zeckma/lfs-openrc/\nAnnouncement: https://lists.linuxfromscratch.org/sympa/arc/lfs-dev/2026-02/msg00002.html\nSecond Thread: https://lists.linuxfromscratch.org/sympa/arc/blfs-dev/2026-02/msg00001.html\nSysvLFS Project: https://github.com/MymeType/sysvlfs\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#LinuxFromScratch #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 From Scratch Drops SysV In Favour Of Pure Systemd", "OHyWs323uPc", 978, false, "https://www.youtube.com/watch?v=OHyWs323uPc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021200_Linux From Scratch Drops SysV In Favour Of Pure Systemd.mp4", false, 30, ~U[2026-02-12 16:30:19Z]] 05:39:56.186 [debug] QUERY OK source="sources" db=1.9ms queue=0.1ms idle=32.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:39:56.201 [debug] QUERY OK source="media_items" db=13.7ms queue=0.1ms idle=25.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-11 16:30:32Z], 30] 05:39:56.206 [debug] QUERY OK source="media_items" db=4.1ms queue=0.1ms idle=37.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" ["2 and half years and almost 1000 interactions later we finally see the window positioning protocol now going by xx-zones has finally been merge but what does this actually mean for Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHistorical Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/72\nProtocol 1: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/247\nProtocol 2: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/249\nCurrent Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/264\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #LinuxDesktop #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.", "Wayland Positioning Protocol Is Finally Merged", "781daf34-ccf5-4846-a148-8496a360a5e6", "s-W7mZhx7QQ", 1267, false, "https://www.youtube.com/watch?v=s-W7mZhx7QQ", 15, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021100_Wayland Positioning Protocol Is Finally Merged.mp4", false, false, false, 30, [], 98, ~U[2026-02-11 16:30:32Z], ~U[2026-03-01 11:39:56Z], ~U[2026-03-01 11:39:56Z], "2 and half years and almost 1000 interactions later we finally see the window positioning protocol now going by xx-zones has finally been merge but what does this actually mean for Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHistorical Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/72\nProtocol 1: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/247\nProtocol 2: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/249\nCurrent Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/264\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #LinuxDesktop #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.", "Wayland Positioning Protocol Is Finally Merged", "s-W7mZhx7QQ", 1267, false, "https://www.youtube.com/watch?v=s-W7mZhx7QQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021100_Wayland Positioning Protocol Is Finally Merged.mp4", false, 30, ~U[2026-02-11 16:30:32Z]] 05:39:56.209 [debug] QUERY OK source="sources" db=2.0ms idle=28.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] 05:39:56.222 [debug] QUERY OK source="media_items" db=12.2ms idle=26.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-10 16:30:22Z], 30] 05:39:56.227 [debug] QUERY OK source="media_items" db=3.6ms idle=36.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" ["We've had a lot positive coverage of Linux as of late so why not have something a little bit more on the negative side, recently The Verge put out this piece on Linux and it has been making the rounds.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVerge Article: https://archive.is/eQJnd\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #OpenSource #FOSS #LinuxDesktop #LinuxDistro\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "He Tried Linux, It Was A Mistake", "c2f7aebb-fd3e-48e2-97a5-a2987c34b038", "vncr11f6niw", 1691, false, "https://www.youtube.com/watch?v=vncr11f6niw", 16, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021000_He Tried Linux, It Was A Mistake.mp4", false, false, false, 30, [], 98, ~U[2026-02-10 16:30:22Z], ~U[2026-03-01 11:39:56Z], ~U[2026-03-01 11:39:56Z], "We've had a lot positive coverage of Linux as of late so why not have something a little bit more on the negative side, recently The Verge put out this piece on Linux and it has been making the rounds.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVerge Article: https://archive.is/eQJnd\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #OpenSource #FOSS #LinuxDesktop #LinuxDistro\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "He Tried Linux, It Was A Mistake", "vncr11f6niw", 1691, false, "https://www.youtube.com/watch?v=vncr11f6niw", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021000_He Tried Linux, It Was A Mistake.mp4", false, 30, ~U[2026-02-10 16:30:22Z]] 05:39:56.229 [debug] QUERY OK source="sources" db=1.7ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:39:56.242 [debug] QUERY OK source="media_items" db=12.6ms idle=23.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 16:30:18Z], 30] 05:39:56.247 [debug] QUERY OK source="media_items" db=3.3ms queue=0.1ms idle=33.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" ["Rather than constantly breaking your Linux system and treating it like a lab or a test bench, there's probably a better way to do things.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHow To Geek Article: https://www.howtogeek.com/please-stop-screwing-with-your-daily-driver-linux-pc/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop #OpenSource #FOSS #ArchLinux #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Stop Constantly Breaking Your Linux Desktop", "b3497754-a969-4909-b316-9396e9ba8a96", "PKSb1VqPbFc", 833, false, "https://www.youtube.com/watch?v=PKSb1VqPbFc", 17, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020900_Stop Constantly Breaking Your Linux Desktop.mp4", false, false, false, 30, [], 98, ~U[2026-02-09 16:30:18Z], ~U[2026-03-01 11:39:56Z], ~U[2026-03-01 11:39:56Z], "Rather than constantly breaking your Linux system and treating it like a lab or a test bench, there's probably a better way to do things.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHow To Geek Article: https://www.howtogeek.com/please-stop-screwing-with-your-daily-driver-linux-pc/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop #OpenSource #FOSS #ArchLinux #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Stop Constantly Breaking Your Linux Desktop", "PKSb1VqPbFc", 833, false, "https://www.youtube.com/watch?v=PKSb1VqPbFc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020900_Stop Constantly Breaking Your Linux Desktop.mp4", false, 30, ~U[2026-02-09 16:30:18Z]] 05:39:56.249 [debug] QUERY OK source="sources" db=1.8ms idle=25.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:39:56.263 [debug] QUERY OK source="media_items" db=13.8ms queue=0.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-02-08 16:30:01Z], 30] 05:39:56.269 [debug] QUERY OK source="media_items" db=3.3ms queue=0.1ms idle=35.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" ["It's been a work in progress for a year now and it's stable enough as well as there being packages for the KDE 1 revival project, called MiDE powered by a Qt 2 fork called Osiris.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nYear Old Post: https://www.reddit.com/r/linux/comments/1htnhwq/software_left_in_nostalgialand_dead_software/\nRecent Post: https://www.reddit.com/r/linux/comments/1q17svp/midesktop_kde1_fork_development_preview_release/\nMiDE: https://libranext.com/midesktop/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Qt #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.", "Try Out The KDE 1 Revival Project", "a47c886b-53ab-4aec-bed2-164b9d4c4e7b", "aj68Zc0WS5c", 693, false, "https://www.youtube.com/watch?v=aj68Zc0WS5c", 18, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020800_Try Out The KDE 1 Revival Project.mp4", false, false, false, 30, [], 98, ~U[2026-02-08 16:30:01Z], ~U[2026-03-01 11:39:56Z], ~U[2026-03-01 11:39:56Z], "It's been a work in progress for a year now and it's stable enough as well as there being packages for the KDE 1 revival project, called MiDE powered by a Qt 2 fork called Osiris.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nYear Old Post: https://www.reddit.com/r/linux/comments/1htnhwq/software_left_in_nostalgialand_dead_software/\nRecent Post: https://www.reddit.com/r/linux/comments/1q17svp/midesktop_kde1_fork_development_preview_release/\nMiDE: https://libranext.com/midesktop/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Qt #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.", "Try Out The KDE 1 Revival Project", "aj68Zc0WS5c", 693, false, "https://www.youtube.com/watch?v=aj68Zc0WS5c", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020800_Try Out The KDE 1 Revival Project.mp4", false, 30, ~U[2026-02-08 16:30:01Z]] 05:39:56.271 [debug] QUERY OK source="sources" db=1.6ms queue=0.1ms idle=26.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:39:56.283 [debug] QUERY OK source="media_items" db=12.1ms queue=0.1ms idle=24.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-07 16:30:01Z], 30] 05:39:56.289 [debug] QUERY OK source="media_items" db=3.9ms idle=34.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 few months back Duckstation's developer Stenzek decided to pull support for the Arch Linux package and now we're seeing a new check and the same thing being done to NixOS\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlocking Arch: https://www.reddit.com/r/linux_gaming/comments/1mcofl4/duckstation_author_now_actively_blocking_arch/\nDuckstation Git AUR: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=duckstation-git\nPolyform Licence: https://polyformproject.org/licenses/strict/1.0.0/\nCC BY-NC-ND: https://creativecommons.org/licenses/by-nc-nd/4.0/deed.en\nDuckstation New Change: https://github.com/stenzek/duckstation/commit/64d13882479e5598a1276e273d231c95a094158c\nNix Issue 1: https://github.com/NixOS/nixpkgs/issues/341915 \nNix Issue 2: https://github.com/NixOS/nixpkgs/issues/342570\nComment 1: https://www.reddit.com/r/EmulationOnAndroid/comments/1e5337f/comment/ldkttbj/?share_id=-ZppjwRdTcRrJDhRl6hh5&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1 \nComment 2: https://www.reddit.com/r/EmulationOnAndroid/comments/152nduz/comment/jskkkl7/?share_id=GK1l1osSFPxMuKHLWvP49&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Duckstation #OpenSource #FOSS #ArchLinux #Linux\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Duckstation Is Back At It Again", "37a3815f-ca0a-4f29-9b9e-c17e107fdc16", "2OMxCC6BFxE", 1053, false, "https://www.youtube.com/watch?v=2OMxCC6BFxE", 19, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020700_Duckstation Is Back At It Again.mp4", false, false, false, 30, [], 98, ~U[2026-02-07 16:30:01Z], ~U[2026-03-01 11:39:56Z], ~U[2026-03-01 11:39:56Z], "A few months back Duckstation's developer Stenzek decided to pull support for the Arch Linux package and now we're seeing a new check and the same thing being done to NixOS\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlocking Arch: https://www.reddit.com/r/linux_gaming/comments/1mcofl4/duckstation_author_now_actively_blocking_arch/\nDuckstation Git AUR: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=duckstation-git\nPolyform Licence: https://polyformproject.org/licenses/strict/1.0.0/\nCC BY-NC-ND: https://creativecommons.org/licenses/by-nc-nd/4.0/deed.en\nDuckstation New Change: https://github.com/stenzek/duckstation/commit/64d13882479e5598a1276e273d231c95a094158c\nNix Issue 1: https://github.com/NixOS/nixpkgs/issues/341915 \nNix Issue 2: https://github.com/NixOS/nixpkgs/issues/342570\nComment 1: https://www.reddit.com/r/EmulationOnAndroid/comments/1e5337f/comment/ldkttbj/?share_id=-ZppjwRdTcRrJDhRl6hh5&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1 \nComment 2: https://www.reddit.com/r/EmulationOnAndroid/comments/152nduz/comment/jskkkl7/?share_id=GK1l1osSFPxMuKHLWvP49&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Duckstation #OpenSource #FOSS #ArchLinux #Linux\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Duckstation Is Back At It Again", "2OMxCC6BFxE", 1053, false, "https://www.youtube.com/watch?v=2OMxCC6BFxE", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020700_Duckstation Is Back At It Again.mp4", false, 30, ~U[2026-02-07 16:30:01Z]] 05:39:56.291 [debug] QUERY OK source="sources" db=1.5ms queue=0.1ms idle=25.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:39:56.305 [debug] QUERY OK source="media_items" db=13.3ms queue=0.1ms idle=23.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-05 16:30:00Z], 30] 05:39:56.311 [debug] QUERY OK source="media_items" db=4.2ms idle=34.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" ["Recently Bazzite announced the Open Gaming Collective, and normally this would be cause for celebration but this was also tied up in a big drama with a core project maintainer also being removed.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWINE Announcement: https://gitlab.winehq.org/wine/wine/-/releases/wine-11.0\nNexus Mods: https://www.nexusmods.com/news/15433\nGOG Galaxy: https://www.reddit.com/r/linux_gaming/comments/1qnu1i4/gog_is_seeking_a_senior_software_engineer_with_c/\nOGC Announcement: https://universal-blue.discourse.group/t/a-brighter-future-for-bazzite/11575?ref=gardinerbryant.com\nHHD: https://github.com/hhd-dev/hhd\nThe Comments: https://x.com/SapphoSys/status/2000870028057698761\nGPD Win First: https://www.gamingonlinux.com/2025/09/gpd-win-5-highlights-support-for-running-bazzite-linux/\nOfficial Announcement: https://videocardz.com/newz/gpd-win-5-to-become-the-first-amd-strix-halo-handheld-to-get-official-bazzite-os-support\nKyle Correction: https://universal-blue.discourse.group/t/correction-regarding-gpd-win5-support-for-bazzite/11574\nGPD Statement: https://www.reddit.com/r/gpdwin/comments/1qqup52/there_really_have_been_a_lot_of_dramatic/\nAntheas Statement: https://ba.antheas.dev/bazzite-postmortem.html\nNonSteamLaunchers: https://github.com/moraroy/NonSteamLaunchers-On-Steam-Deck/issues/393\nCachyOS Comments: https://www.reddit.com/r/cachyos/comments/1qq0dxr/open_gaming_collective_ogc_formed_to_push_linux/\nFinal Bazzite Statement: https://universal-blue.discourse.group/t/upholding-our-values-our-final-update-on-gpd/11594\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Bazzite #LinuxGaming #GamingOnLinux #FOSS #OpenSource\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bazzite Linux Got Into Some Drama", "3feff7c3-4ba0-4b1f-b986-9df74ecec900", "aajSOtHd8uc", 1887, false, "https://www.youtube.com/watch?v=aajSOtHd8uc", 20, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020500_Bazzite Linux Got Into Some Drama.mp4", false, false, false, 30, [], 98, ~U[2026-02-05 16:30:00Z], ~U[2026-03-01 11:39:56Z], ~U[2026-03-01 11:39:56Z], "Recently Bazzite announced the Open Gaming Collective, and normally this would be cause for celebration but this was also tied up in a big drama with a core project maintainer also being removed.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWINE Announcement: https://gitlab.winehq.org/wine/wine/-/releases/wine-11.0\nNexus Mods: https://www.nexusmods.com/news/15433\nGOG Galaxy: https://www.reddit.com/r/linux_gaming/comments/1qnu1i4/gog_is_seeking_a_senior_software_engineer_with_c/\nOGC Announcement: https://universal-blue.discourse.group/t/a-brighter-future-for-bazzite/11575?ref=gardinerbryant.com\nHHD: https://github.com/hhd-dev/hhd\nThe Comments: https://x.com/SapphoSys/status/2000870028057698761\nGPD Win First: https://www.gamingonlinux.com/2025/09/gpd-win-5-highlights-support-for-running-bazzite-linux/\nOfficial Announcement: https://videocardz.com/newz/gpd-win-5-to-become-the-first-amd-strix-halo-handheld-to-get-official-bazzite-os-support\nKyle Correction: https://universal-blue.discourse.group/t/correction-regarding-gpd-win5-support-for-bazzite/11574\nGPD Statement: https://www.reddit.com/r/gpdwin/comments/1qqup52/there_really_have_been_a_lot_of_dramatic/\nAntheas Statement: https://ba.antheas.dev/bazzite-postmortem.html\nNonSteamLaunchers: https://github.com/moraroy/NonSteamLaunchers-On-Steam-Deck/issues/393\nCachyOS Comments: https://www.reddit.com/r/cachyos/comments/1qq0dxr/open_gaming_collective_ogc_formed_to_push_linux/\nFinal Bazzite Statement: https://universal-blue.discourse.group/t/upholding-our-values-our-final-update-on-gpd/11594\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Bazzite #LinuxGaming #GamingOnLinux #FOSS #OpenSource\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bazzite Linux Got Into Some Drama", "aajSOtHd8uc", 1887, false, "https://www.youtube.com/watch?v=aajSOtHd8uc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020500_Bazzite Linux Got Into Some Drama.mp4", false, 30, ~U[2026-02-05 16:30:00Z]] 05:39:56.313 [debug] QUERY OK source="sources" db=1.4ms idle=27.6ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-01 11:39:56Z], ~U[2026-03-01 11:39:56Z], 30] 05:39:56.328 [debug] QUERY OK source="media_items" db=14.6ms idle=24.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] 05:39:56.342 [debug] QUERY OK source="media_items" db=13.9ms idle=37.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] 05:39:56.345 [debug] QUERY OK source="media_items" db=2.0ms queue=0.1ms idle=37.9ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [30] 05:39:56.350 [debug] QUERY OK source="tasks" db=1.6ms idle=20.4ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189128, 30, ~U[2026-03-01 11:39:56Z], ~U[2026-03-01 11:39:56Z]] 05:39:56.352 [info] {"args":{"id":30},"id":189082,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":97091230,"event":"job:stop","queue_time":696422,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 05:40:00.109 [info] {"source":"oban","duration":398,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:40:11.194 [info] {"source":"oban","duration":17658,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:40:41.207 [info] {"source":"oban","duration":13227,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:41:00.110 [info] {"source":"oban","duration":221,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:41:11.224 [info] {"source":"oban","duration":16078,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:41:11.693 [info] {"args":{"id":51},"id":189112,"meta":{},"system_time":1772365271693447347,"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"]} 05:41:11.695 [debug] QUERY OK source="sources" db=1.3ms idle=469.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" = ?) [51] 05:41:11.695 [debug] QUERY OK source="settings" db=0.4ms idle=180.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:41:11.696 [debug] QUERY OK source="media_profiles" db=0.3ms idle=181.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] 05:41:11.697 [debug] QUERY OK source="settings" db=0.9ms idle=10.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:41:11.698 [debug] Fetching recent media IDs from YouTube RSS feed for source: UCUMwY9iS8oMyWDYIe6_RmoA 05:41:12.026 [debug] Media ids fetched from RSS: ["WxN9VzwoGGw", "9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI"] 05:41:12.027 [debug] QUERY OK source="media_items" db=0.8ms idle=333.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" = ?) AND m0."media_id" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [51, "WxN9VzwoGGw", "9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI"] 05:41:12.029 [debug] QUERY OK source="media_items" db=0.7ms idle=333.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")))) [51] 05:41:12.032 [debug] QUERY OK source="tasks" db=0.5ms idle=333.5ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189129, 51, ~U[2026-03-01 11:41:12Z], ~U[2026-03-01 11:41:12Z]] 05:41:12.032 [info] {"args":{"id":51},"id":189112,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":338649,"event":"job:stop","queue_time":973605,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 05:41:41.240 [info] {"source":"oban","duration":14710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:42:00.111 [info] {"source":"oban","duration":309,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:42:11.253 [info] {"source":"oban","duration":12951,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:42:41.268 [info] {"source":"oban","duration":14091,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:42:59.904 [info] {"args":{"id":2281148},"id":189113,"meta":{},"system_time":1772365379904503907,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":9,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:42:59.906 [debug] QUERY OK source="media_items" db=1.2ms idle=1010.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" = ?) [2281148] 05:42:59.906 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:42:59.907 [debug] QUERY OK source="sources" db=1.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" = ?) [43] 05:42:59.908 [debug] QUERY OK source="media_profiles" db=0.5ms idle=393.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] 05:42:59.909 [debug] QUERY OK source="media_items" db=0.5ms idle=12.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 [2281148] 05:42:59.911 [debug] QUERY OK source="media_metadata" db=0.1ms idle=7.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" = ?) [2281148] 05:42:59.912 [debug] QUERY OK source="media_profiles" db=0.3ms queue=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] 05:42:59.912 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:42:59.912 [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 [] 05:42:59.913 [debug] Running yt-dlp command for action: get_downloadable_status 05:42:59.915 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:42:59.915 [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 [] 05:42:59.915 [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 [] 05:42:59.915 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RzBuqvd_zD4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/63/cd/63cdbb342671d459b225245b4de64f32c5d83aa14b20c0ec21713695dfbcc1c2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:43:00.112 [info] {"source":"oban","duration":239,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:43:02.408 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RzBuqvd_zD4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/63/cd/63cdbb342671d459b225245b4de64f32c5d83aa14b20c0ec21713695dfbcc1c2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] RzBuqvd_zD4: Join this channel to get access to members-only content like this video, and other exclusive perks. 05:43:02.409 [error] yt-dlp download error for media item #2281148: "ERROR: [youtube] RzBuqvd_zD4: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 05:43:02.410 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":2281148},"id":189113,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2504789,"event":"job:exception","queue_time":96971,"attempt":9,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:43:11.282 [info] {"source":"oban","duration":12650,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:43:41.295 [info] {"source":"oban","duration":13225,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:44:00.113 [info] {"source":"oban","duration":265,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:44:11.310 [info] {"source":"oban","duration":13624,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:44:41.325 [info] {"source":"oban","duration":13788,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:45:00.114 [info] {"source":"oban","duration":325,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:45:11.335 [info] {"source":"oban","duration":9064,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:45:41.346 [info] {"source":"oban","duration":9698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:46:00.115 [info] {"source":"oban","duration":272,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:46:11.359 [info] {"source":"oban","duration":13135,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 05:46:20.824 [info] GET /sources/37 05:46:20.824 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "37"} Pipelines: [:browser] 05:46:20.825 [debug] QUERY OK source="sources" db=0.2ms idle=534.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:46:20.826 [debug] QUERY OK source="media_profiles" db=0.3ms idle=311.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] 05:46:21.104 [debug] QUERY OK source="tasks" db=277.5ms idle=311.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 (?,?,?,?)) [37, "executing", "available", "scheduled", "retryable"] 05:46:21.104 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=589.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" = ?) [189111] 05:46:21.105 [debug] QUERY OK source="settings" db=0.2ms idle=590.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:46:21.105 [debug] QUERY OK source="settings" db=0.1ms idle=279.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:46:21.106 [debug] QUERY OK source="settings" db=0.1ms idle=279.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:46:21.107 [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" = ?) [37] 05:46:21.112 [debug] QUERY OK source="media_items" db=4.2ms idle=3.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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] 05:46:21.116 [debug] QUERY OK source="media_items" db=4.2ms idle=7.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [37, 10, 0] 05:46:21.118 [debug] QUERY OK source="sources" db=0.1ms idle=12.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:46:21.119 [debug] QUERY OK source="media_items" db=0.3ms idle=12.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [37] 05:46:21.122 [debug] QUERY OK source="media_items" db=3.3ms idle=11.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [37, 10, 0] 05:46:21.123 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 05:46:21.125 [debug] QUERY OK source="media_items" db=1.5ms idle=7.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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"))))) [37] 05:46:21.130 [debug] QUERY OK source="media_items" db=4.6ms idle=7.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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 ? [37, 10, 0] 05:46:21.132 [info] Sent 200 in 307ms 05:46:41.375 [info] {"source":"oban","duration":15252,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:46:50.354 [info] {"args":{"id":52},"id":189127,"meta":{},"system_time":1772365610354755439,"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"]} 05:46:50.355 [debug] QUERY OK source="sources" db=0.6ms idle=1840.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" = ?) [52] 05:46:50.357 [debug] QUERY OK source="settings" db=1.2ms idle=1841.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:46:50.357 [debug] QUERY OK source="media_profiles" db=0.2ms idle=1012.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] 05:46:50.359 [debug] QUERY OK source="settings" db=1.5ms idle=10.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:46:50.359 [debug] Fetching recent media IDs from YouTube RSS feed for source: UC9H0HzpKf5JlazkADWnW1Jw 05:46:50.716 [debug] Media ids fetched from RSS: ["AmqmI9SxdNc", "QwSDD2rvrbg", "M5fh85WVkPU", "AJGwm6P_f_8", "mfWhlH-5ooY", "eMl7jhLvHOQ", "GYBOJiYvtbI", "zMSL-kTF8LE", "lf9pprK5gg8", "WP69p26qNZY", "OuvUK9ZdjPs", "CA-0MvrvWAU", "-80I7UZL3hk", "hJ3wG8PVhPw", "HzeBu2mVff4"] 05:46:50.717 [debug] QUERY OK source="media_items" db=0.8ms idle=361.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, "AmqmI9SxdNc", "QwSDD2rvrbg", "M5fh85WVkPU", "AJGwm6P_f_8", "mfWhlH-5ooY", "eMl7jhLvHOQ", "GYBOJiYvtbI", "zMSL-kTF8LE", "lf9pprK5gg8", "WP69p26qNZY", "OuvUK9ZdjPs", "CA-0MvrvWAU", "-80I7UZL3hk", "hJ3wG8PVhPw", "HzeBu2mVff4"] 05:46:50.719 [debug] QUERY OK source="media_items" db=0.9ms idle=362.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")))) [52] 05:46:50.723 [debug] QUERY OK source="tasks" db=0.3ms idle=363.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189130, 1301334, ~U[2026-03-01 11:46:50Z], ~U[2026-03-01 11:46:50Z]] 05:46:50.727 [debug] QUERY OK source="tasks" db=0.4ms idle=4.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189131, 1301335, ~U[2026-03-01 11:46:50Z], ~U[2026-03-01 11:46:50Z]] 05:46:50.731 [info] {"args":{"id":1301334},"id":189130,"meta":{},"system_time":1772365610731228775,"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"]} 05:46:50.731 [info] {"args":{"id":1301335},"id":189131,"meta":{},"system_time":1772365610731352999,"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"]} 05:46:50.732 [debug] QUERY OK source="media_items" db=1.1ms idle=4.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1301335] 05:46:50.733 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:46:50.733 [debug] QUERY OK source="media_items" db=1.4ms idle=5.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1301334] 05:46:50.733 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:46:50.734 [debug] QUERY OK source="sources" db=0.9ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 05:46:50.734 [debug] QUERY OK source="sources" db=0.5ms idle=2.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 05:46:50.734 [debug] QUERY OK source="media_profiles" db=0.3ms queue=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] 05:46:50.735 [debug] QUERY OK source="tasks" db=0.5ms idle=0.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189132, 1301347, ~U[2026-03-01 11:46:50Z], ~U[2026-03-01 11:46:50Z]] 05:46:50.735 [debug] QUERY OK source="media_profiles" db=1.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] 05:46:50.736 [debug] QUERY OK source="media_items" db=1.1ms idle=0.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1301335] 05:46:50.736 [debug] QUERY OK source="media_items" db=0.8ms idle=1.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1301334] 05:46:50.738 [debug] QUERY OK source="media_metadata" db=0.2ms 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" = ?) [1301335] 05:46:50.738 [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] 05:46:50.739 [debug] QUERY OK source="media_metadata" db=0.4ms 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" = ?) [1301334] 05:46:50.740 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:46:50.740 [debug] QUERY OK source="media_profiles" db=0.7ms 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] 05:46:50.740 [debug] QUERY OK source="settings" db=0.6ms 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 [] 05:46:50.741 [debug] QUERY OK source="settings" db=0.5ms 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 [] 05:46:50.741 [debug] Running yt-dlp command for action: get_downloadable_status 05:46:50.742 [debug] QUERY OK source="settings" db=0.4ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:46:50.742 [debug] Running yt-dlp command for action: get_downloadable_status 05:46:50.742 [debug] QUERY OK source="settings" db=0.3ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:46:50.743 [debug] QUERY OK source="tasks" db=0.5ms idle=1.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189133, 1301392, ~U[2026-03-01 11:46:50Z], ~U[2026-03-01 11:46:50Z]] 05:46:50.743 [debug] QUERY OK source="settings" db=0.6ms 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 [] 05:46:50.743 [debug] QUERY OK source="settings" db=0.5ms 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 [] 05:46:50.744 [debug] QUERY OK source="settings" db=0.5ms 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 [] 05:46:50.744 [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/49/9a/499ad582b80fb9bc3742cdf201cf4c2dbb5f371166595b50d5a5240597122f58.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:46:50.744 [debug] QUERY OK source="settings" db=0.5ms 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 [] 05:46:50.745 [debug] QUERY OK source="settings" db=0.4ms queue=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 [] 05:46:50.745 [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/6f/c2/6fc2a6277cc67f5461567ab0b5eba9be74d01c9ae486a221a75c3274aaa8ad6d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:46:50.748 [debug] QUERY OK source="tasks" db=0.3ms idle=3.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189134, 1301393, ~U[2026-03-01 11:46:50Z], ~U[2026-03-01 11:46:50Z]] 05:46:50.752 [debug] QUERY OK source="tasks" db=0.4ms idle=4.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189135, 1301394, ~U[2026-03-01 11:46:50Z], ~U[2026-03-01 11:46:50Z]] 05:46:50.756 [debug] QUERY OK source="tasks" db=0.4ms queue=0.1ms idle=4.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189136, 1301395, ~U[2026-03-01 11:46:50Z], ~U[2026-03-01 11:46:50Z]] 05:46:50.761 [debug] QUERY OK source="tasks" db=0.5ms idle=5.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189137, 1301397, ~U[2026-03-01 11:46:50Z], ~U[2026-03-01 11:46:50Z]] 05:46:50.766 [debug] QUERY OK source="tasks" db=0.4ms idle=5.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189138, 1301398, ~U[2026-03-01 11:46:50Z], ~U[2026-03-01 11:46:50Z]] 05:46:50.770 [debug] QUERY OK source="tasks" db=0.4ms idle=4.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189139, 1301399, ~U[2026-03-01 11:46:50Z], ~U[2026-03-01 11:46:50Z]] 05:46:50.774 [debug] QUERY OK source="tasks" db=0.4ms idle=4.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189140, 1301400, ~U[2026-03-01 11:46:50Z], ~U[2026-03-01 11:46:50Z]] 05:46:50.777 [debug] QUERY OK source="tasks" db=0.6ms idle=3.1ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189141, 52, ~U[2026-03-01 11:46:50Z], ~U[2026-03-01 11:46:50Z]] 05:46:50.777 [info] {"args":{"id":52},"id":189127,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":422458,"event":"job:stop","queue_time":971709,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 05:46:53.644 [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/49/9a/499ad582b80fb9bc3742cdf201cf4c2dbb5f371166595b50d5a5240597122f58.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. 05:46:53.644 [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" 05:46:53.645 [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" 05:46:53.646 [info] {"args":{"id":1301335},"id":189131,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2913883,"event":"job:stop","queue_time":728344,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:46:53.652 [info] {"args":{"id":1301347},"id":189132,"meta":{},"system_time":1772365613652653862,"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"]} 05:46:53.653 [debug] QUERY OK source="media_items" db=0.2ms idle=1138.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] 05:46:53.653 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:46:53.654 [debug] QUERY OK source="sources" db=0.3ms idle=1139.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:46:53.654 [debug] QUERY OK source="media_profiles" db=0.3ms idle=300.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] 05:46:53.655 [debug] QUERY OK source="media_items" db=0.4ms idle=9.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 [1301347] 05:46:53.656 [debug] QUERY OK source="media_metadata" db=0.1ms idle=3.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [1301347] 05:46:53.656 [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] 05:46:53.657 [debug] QUERY OK source="settings" db=0.1ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:46:53.657 [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 [] 05:46:53.658 [debug] Running yt-dlp command for action: get_downloadable_status 05:46:53.659 [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 [] 05:46:53.659 [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 [] 05:46:53.659 [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 [] 05:46:53.659 [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/6a/cd/6acd893ceda7c45916015e84a9c369da2bd987397a58ed4efd3995eec289b109.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:46:53.825 [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/6f/c2/6fc2a6277cc67f5461567ab0b5eba9be74d01c9ae486a221a75c3274aaa8ad6d.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. 05:46:53.825 [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" 05:46:53.826 [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" 05:46:53.826 [info] {"args":{"id":1301334},"id":189130,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3095068,"event":"job:stop","queue_time":728344,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:46:53.833 [info] {"args":{"id":1301392},"id":189133,"meta":{},"system_time":1772365613833361775,"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"]} 05:46:53.834 [debug] QUERY OK source="media_items" db=0.3ms idle=174.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] 05:46:53.834 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:46:53.834 [debug] QUERY OK source="sources" db=0.4ms idle=174.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] 05:46:53.835 [debug] QUERY OK source="media_profiles" db=0.2ms idle=175.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] 05:46:53.836 [debug] QUERY OK source="media_items" db=0.4ms 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 [1301392] 05:46:53.837 [debug] QUERY OK source="media_metadata" db=0.1ms idle=4.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] 05:46:53.838 [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] 05:46:53.838 [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 [] 05:46:53.839 [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 [] 05:46:53.839 [debug] Running yt-dlp command for action: get_downloadable_status 05:46:53.840 [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 [] 05:46:53.840 [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 [] 05:46:53.841 [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 [] 05:46:53.841 [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/d4/49/d449fefc583adfb71ddc6142353b14f2a491bbcf2eeaa0fd755cb9f0a51f8ef4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:46:56.451 [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/6a/cd/6acd893ceda7c45916015e84a9c369da2bd987397a58ed4efd3995eec289b109.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. 05:46:56.451 [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" 05:46:56.452 [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" 05:46:56.453 [info] {"args":{"id":1301347},"id":189132,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2799661,"event":"job:stop","queue_time":3651338,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:46:56.459 [info] {"args":{"id":1301393},"id":189134,"meta":{},"system_time":1772365616459687220,"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"]} 05:46:56.460 [debug] QUERY OK source="media_items" db=0.3ms idle=945.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" = ?) [1301393] 05:46:56.460 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:46:56.461 [debug] QUERY OK source="sources" db=0.3ms idle=946.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:46:56.461 [debug] QUERY OK source="media_profiles" db=0.3ms idle=101.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] 05:46:56.462 [debug] QUERY OK source="media_items" db=0.4ms idle=9.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 [1301393] 05:46:56.463 [debug] QUERY OK source="media_metadata" db=0.1ms 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] 05:46:56.463 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:46:56.464 [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 [] 05:46:56.464 [debug] QUERY OK source="settings" db=0.3ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:46:56.465 [debug] Running yt-dlp command for action: get_downloadable_status 05:46:56.467 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:46:56.468 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:46:56.468 [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 [] 05:46:56.468 [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/da/44/da44b33fa4063b18cf0cb9ecf3106cdd3b12ceb211270d46ecc0987148018ef9.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:46:56.783 [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/d4/49/d449fefc583adfb71ddc6142353b14f2a491bbcf2eeaa0fd755cb9f0a51f8ef4.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. 05:46:56.783 [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" 05:46:56.783 [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" 05:46:56.784 [info] {"args":{"id":1301392},"id":189133,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2950715,"event":"job:stop","queue_time":3832332,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:46:56.791 [info] {"args":{"id":1301394},"id":189135,"meta":{},"system_time":1772365616791566363,"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"]} 05:46:56.792 [debug] QUERY OK source="media_items" db=0.3ms idle=324.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] 05:46:56.792 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:46:56.793 [debug] QUERY OK source="sources" db=0.4ms idle=324.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:46:56.793 [debug] QUERY OK source="media_profiles" db=0.3ms idle=325.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] 05:46:56.794 [debug] QUERY OK source="media_items" db=0.4ms idle=9.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1301394] 05:46:56.796 [debug] QUERY OK source="media_metadata" db=0.1ms idle=4.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" = ?) [1301394] 05:46:56.797 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:46:56.797 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:46:56.798 [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 [] 05:46:56.798 [debug] Running yt-dlp command for action: get_downloadable_status 05:46:56.799 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:46:56.800 [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 [] 05:46:56.800 [debug] QUERY OK source="settings" db=0.2ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:46:56.800 [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/96/a3/96a3d9a38baf1a6183f58611fa36854275666eec431dcd53d305259e7319b976.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:46:59.237 [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/da/44/da44b33fa4063b18cf0cb9ecf3106cdd3b12ceb211270d46ecc0987148018ef9.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. 05:46:59.237 [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" 05:46:59.237 [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" 05:46:59.238 [info] {"args":{"id":1301393},"id":189134,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2778111,"event":"job:stop","queue_time":6458393,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:46:59.245 [info] {"args":{"id":1301395},"id":189136,"meta":{},"system_time":1772365619245697035,"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"]} 05:46:59.246 [debug] QUERY OK source="media_items" db=0.3ms idle=731.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] 05:46:59.246 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:46:59.247 [debug] QUERY OK source="sources" db=0.3ms idle=732.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:46:59.247 [debug] QUERY OK source="media_profiles" db=0.2ms idle=732.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] 05:46:59.248 [debug] QUERY OK source="media_items" db=0.3ms 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 [1301395] 05:46:59.249 [debug] QUERY OK source="media_metadata" db=0.1ms idle=3.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] 05:46:59.250 [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] 05:46:59.250 [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 [] 05:46:59.251 [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 [] 05:46:59.251 [debug] Running yt-dlp command for action: get_downloadable_status 05:46:59.252 [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 [] 05:46:59.252 [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 [] 05:46:59.252 [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 [] 05:46:59.252 [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/39/34/39341eab67c65da1319734603bc7817705ac304de92b14033c0cab201b06fdac.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:46:59.681 [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/96/a3/96a3d9a38baf1a6183f58611fa36854275666eec431dcd53d305259e7319b976.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. 05:46:59.681 [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" 05:46:59.681 [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" 05:46:59.682 [info] {"args":{"id":1301394},"id":189135,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2890195,"event":"job:stop","queue_time":6790342,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:46:59.689 [info] {"args":{"id":1301397},"id":189137,"meta":{},"system_time":1772365619689486949,"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"]} 05:46:59.690 [debug] QUERY OK source="media_items" db=0.3ms idle=437.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] 05:46:59.690 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:46:59.690 [debug] QUERY OK source="sources" db=0.3ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 05:46:59.691 [debug] QUERY OK source="media_profiles" db=0.2ms idle=325.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] 05:46:59.692 [debug] QUERY OK source="media_items" db=0.5ms idle=9.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] 05:46:59.694 [debug] QUERY OK source="media_metadata" db=0.1ms 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] 05:46:59.694 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 05:46:59.695 [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 [] 05:46:59.695 [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 [] 05:46:59.696 [debug] Running yt-dlp command for action: get_downloadable_status 05:46:59.696 [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 [] 05:46:59.697 [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 [] 05:46:59.697 [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 [] 05:46:59.697 [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/b4/d2/b4d23484a2a2ae6cbd93b3e55495a578f99ccbea69796ec127c5b64a8a14f5e7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:47:00.116 [info] {"source":"oban","duration":294,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:47:02.100 [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/39/34/39341eab67c65da1319734603bc7817705ac304de92b14033c0cab201b06fdac.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. 05:47:02.100 [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" 05:47:02.100 [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" 05:47:02.101 [info] {"args":{"id":1301395},"id":189136,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2854733,"event":"job:stop","queue_time":9244355,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:47:02.107 [info] {"args":{"id":1301398},"id":189138,"meta":{},"system_time":1772365622107668156,"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"]} 05:47:02.108 [debug] QUERY OK source="media_items" db=0.3ms idle=593.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] 05:47:02.108 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:47:02.109 [debug] QUERY OK source="sources" db=0.4ms idle=594.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:47:02.110 [debug] QUERY OK source="media_profiles" db=0.3ms idle=594.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] 05:47:02.110 [debug] QUERY OK source="media_items" db=0.5ms idle=9.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] 05:47:02.112 [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" = ?) [1301398] 05:47:02.112 [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] 05:47:02.113 [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 [] 05:47:02.113 [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 [] 05:47:02.114 [debug] Running yt-dlp command for action: get_downloadable_status 05:47:02.114 [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 [] 05:47:02.115 [debug] QUERY OK source="settings" db=0.2ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:47:02.115 [debug] QUERY OK source="settings" db=0.2ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:47:02.115 [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/27/78/2778d483facd750a0fe95c1a71b5fb44e855a18aecc712c628671806020d1ae6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:47:02.641 [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/b4/d2/b4d23484a2a2ae6cbd93b3e55495a578f99ccbea69796ec127c5b64a8a14f5e7.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. 05:47:02.642 [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" 05:47:02.642 [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" 05:47:02.643 [info] {"args":{"id":1301397},"id":189137,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2952887,"event":"job:stop","queue_time":9688330,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:47:02.649 [info] {"args":{"id":1301399},"id":189139,"meta":{},"system_time":1772365622649626493,"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"]} 05:47:02.650 [debug] QUERY OK source="media_items" db=0.4ms idle=534.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] 05:47:02.650 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:47:02.651 [debug] QUERY OK source="sources" db=0.5ms idle=535.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:47:02.652 [debug] QUERY OK source="media_profiles" db=0.3ms idle=280.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] 05:47:02.653 [debug] QUERY OK source="media_items" db=0.4ms idle=9.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1301399] 05:47:02.654 [debug] QUERY OK source="media_metadata" db=0.1ms idle=5.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] 05:47:02.655 [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] 05:47:02.655 [debug] QUERY OK source="settings" db=0.3ms 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 [] 05:47:02.656 [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 [] 05:47:02.656 [debug] Running yt-dlp command for action: get_downloadable_status 05:47:02.657 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:47:02.658 [debug] QUERY OK source="settings" db=0.2ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:47:02.658 [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 [] 05:47:02.658 [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/0f/5e/0f5e42e86f0cbb130eb6cf9ac80d33c4d87fe5d872dc4a78a75d4563d8505483.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:47:05.136 [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/27/78/2778d483facd750a0fe95c1a71b5fb44e855a18aecc712c628671806020d1ae6.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. 05:47:05.136 [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" 05:47:05.136 [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" 05:47:05.137 [info] {"args":{"id":1301398},"id":189138,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3029388,"event":"job:stop","queue_time":12106352,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:47:05.144 [info] {"args":{"id":1301400},"id":189140,"meta":{},"system_time":1772365625144769830,"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"]} 05:47:05.145 [debug] QUERY OK source="media_items" db=0.4ms idle=630.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] 05:47:05.145 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:47:05.146 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=631.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] 05:47:05.147 [debug] QUERY OK source="media_profiles" db=0.3ms idle=632.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] 05:47:05.148 [debug] QUERY OK source="media_items" db=0.5ms idle=9.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] 05:47:05.148 [debug] QUERY OK source="media_metadata" db=0.1ms idle=4.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] 05:47:05.149 [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] 05:47:05.150 [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 [] 05:47:05.150 [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 [] 05:47:05.150 [debug] Running yt-dlp command for action: get_downloadable_status 05:47:05.151 [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 [] 05:47:05.152 [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 [] 05:47:05.152 [debug] QUERY OK source="settings" db=0.2ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:47:05.152 [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/d5/50/d5500ba01a9788bdbc5eb89592c235f1c95d398ac428350d818904ca514514e9.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:47:05.994 [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/0f/5e/0f5e42e86f0cbb130eb6cf9ac80d33c4d87fe5d872dc4a78a75d4563d8505483.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. 05:47:05.994 [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" 05:47:05.994 [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" 05:47:05.995 [info] {"args":{"id":1301399},"id":189139,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3345264,"event":"job:stop","queue_time":12648370,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:47:08.195 [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/d5/50/d5500ba01a9788bdbc5eb89592c235f1c95d398ac428350d818904ca514514e9.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. 05:47:08.196 [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" 05:47:08.196 [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" 05:47:08.197 [info] {"args":{"id":1301400},"id":189140,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3051552,"event":"job:stop","queue_time":15143387,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:47:11.390 [info] {"source":"oban","duration":14217,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:47:23.419 [info] {"args":{"id":33},"id":188938,"meta":{},"system_time":1772365643418923510,"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"]} 05:47:23.419 [debug] QUERY OK source="sources" db=0.4ms idle=1904.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:47:23.420 [debug] QUERY OK source="settings" db=0.3ms idle=1010.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:47:23.422 [debug] QUERY OK source="media_items" db=1.3ms idle=906.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")))) [33] 05:47:23.422 [debug] QUERY OK source="media_items" db=0.2ms idle=10.0ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [33] 05:47:23.423 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:47:23.423 [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 [] 05:47:23.424 [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 [] 05:47:23.427 [debug] QUERY OK source="media_items" db=1.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 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [33] 05:47:23.428 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 05:47:23.428 [debug] Current batch of media processed. Will check again in 1000ms 05:47:23.429 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:47:23.429 [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 [] 05:47:23.429 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:47:23.429 [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/75/c7/75c719f3d48cb5fc80c093f7dd4e116737cb139291d4bbe52c7b26d155595d8a.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/50/43/5043227afc270f3df32dea012cf4c2de8812341338bca8218f5ee20b87fa6149.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:47:24.429 [debug] Current batch of media processed. Will check again in 1000ms 05:47:25.430 [debug] Current batch of media processed. Will check again in 1000ms 05:47:26.431 [debug] Current batch of media processed. Will check again in 1000ms 05:47:27.432 [debug] Current batch of media processed. Will check again in 1000ms 05:47:28.433 [debug] Current batch of media processed. Will check again in 1000ms 05:47:29.434 [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" => 1, "timestamp" => 1770313897, "title" => "Interview with ‘Just use a VPS’ bro (OpenClaw version).", "upload_date" => "20260205"} 05:47:29.435 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=920.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] 05:47:29.436 [debug] QUERY OK source="sources" db=0.2ms idle=921.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:47:29.437 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=922.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-05 17:51:37Z], 33] 05:47:29.439 [debug] QUERY OK source="media_items" db=1.1ms idle=923.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" ["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).", "a6eb0dd2-7d50-4d9d-b46c-8db57f4a8237", "40SnEd1RWUU", 465, false, "https://www.youtube.com/watch?v=40SnEd1RWUU", 1, "/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-03-01 11:47:29Z], ~U[2026-03-01 11:47:29Z], "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]] 05:47:29.439 [debug] QUERY OK source="sources" db=0.4ms idle=15.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:47:29.440 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:47:29.441 [debug] QUERY OK source="media_items" db=0.3ms 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 [2196433] 05:47:29.441 [debug] Current batch of media processed. Will check again in 1000ms 05:47:30.442 [debug] Current batch of media processed. Will check again in 1000ms 05:47:31.443 [debug] Current batch of media processed. Will check again in 1000ms 05:47:32.444 [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" => 2, "timestamp" => 1766507866, "title" => "Santa Claus on delivering 99% Uptime", "upload_date" => "20251223"} 05:47:32.445 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1930.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 (?)) [33] 05:47:32.446 [debug] QUERY OK source="sources" db=0.2ms idle=1931.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:47:32.446 [debug] QUERY OK source="media_items" db=0.4ms idle=1931.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] 05:47:32.448 [debug] QUERY OK source="media_items" db=1.1ms idle=1019.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" ["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", "96d6e7d3-b049-4790-9a9a-db9c478e6c63", "uMoql_RYVBQ", 231, false, "https://www.youtube.com/watch?v=uMoql_RYVBQ", 2, "/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-03-01 11:47:32Z], ~U[2026-03-01 11:47:32Z], "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]] 05:47:32.449 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [33] 05:47:32.449 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:47:32.450 [debug] QUERY OK source="media_items" db=0.4ms 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 [1844510] 05:47:32.450 [debug] Current batch of media processed. Will check again in 1000ms 05:47:33.451 [debug] Current batch of media processed. Will check again in 1000ms 05:47:34.452 [debug] Current batch of media processed. Will check again in 1000ms 05:47:35.453 [debug] Current batch of media processed. Will check again in 1000ms 05:47:36.454 [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" => 3, "timestamp" => 1763566546, "title" => "NPCs…", "upload_date" => "20251119"} 05:47:36.455 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=940.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:47:36.456 [debug] QUERY OK source="sources" db=0.2ms idle=940.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] 05:47:36.456 [debug] QUERY OK source="media_items" db=0.4ms idle=941.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-19 15:35:46Z], 33] 05:47:36.458 [debug] QUERY OK source="media_items" db=1.1ms idle=942.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" ["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…", "f68b301e-2c16-445a-a453-50b4247ea2c6", "d4JL1IDupYI", 288, false, "https://www.youtube.com/watch?v=d4JL1IDupYI", 3, "/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-03-01 11:47:36Z], ~U[2026-03-01 11:47:36Z], "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]] 05:47:36.459 [debug] QUERY OK source="sources" db=0.3ms idle=21.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:47:36.460 [debug] QUERY OK source="media_profiles" db=0.5ms queue=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] 05:47:36.460 [debug] QUERY OK source="media_items" db=0.4ms 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 [1576479] 05:47:36.461 [debug] Current batch of media processed. Will check again in 1000ms 05:47:37.461 [debug] Current batch of media processed. Will check again in 1000ms 05:47:38.462 [debug] Current batch of media processed. Will check again in 1000ms 05:47:39.463 [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" => 4, "timestamp" => 1762960024, "title" => "Interview with Dying Company's Vice President.", "upload_date" => "20251112"} 05:47:39.464 [debug] QUERY OK source="sources" db=0.3ms idle=1949.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:47:39.465 [debug] QUERY OK source="sources" db=0.4ms idle=1950.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:47:39.465 [debug] QUERY OK source="media_items" db=0.3ms idle=1950.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] 05:47:39.467 [debug] QUERY OK source="media_items" db=1.2ms idle=1024.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" ["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.", "549319c9-996a-4298-bc1b-62ecd5d96044", "3EfYy04o4J4", 342, false, "https://www.youtube.com/watch?v=3EfYy04o4J4", 4, "/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-03-01 11:47:39Z], ~U[2026-03-01 11:47:39Z], "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]] 05:47:39.468 [debug] QUERY OK source="sources" db=0.3ms idle=24.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:47:39.468 [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] 05:47:39.469 [debug] QUERY OK source="media_items" db=0.4ms 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 [1517904] 05:47:39.469 [debug] Current batch of media processed. Will check again in 1000ms 05:47:40.470 [debug] Current batch of media processed. Will check again in 1000ms 05:47:41.408 [info] {"source":"oban","duration":16487,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:47:41.471 [debug] Current batch of media processed. Will check again in 1000ms 05:47:42.472 [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" => 5, "timestamp" => 1762358281, "title" => "Interview with Dying Company's Manager.", "upload_date" => "20251105"} 05:47:42.473 [debug] QUERY OK source="sources" db=0.3ms idle=1958.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:47:42.473 [debug] QUERY OK source="sources" db=0.2ms idle=1958.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] 05:47:42.474 [debug] QUERY OK source="media_items" db=0.4ms idle=1066.2ms 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] 05:47:42.476 [debug] QUERY OK source="media_items" db=1.3ms idle=1027.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" ["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.", "f4c4ddbd-1896-46e2-b627-57848fbb7ba3", "VCivp2qnhr8", 290, false, "https://www.youtube.com/watch?v=VCivp2qnhr8", 5, "/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-03-01 11:47:42Z], ~U[2026-03-01 11:47:42Z], "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]] 05:47:42.477 [debug] QUERY OK source="sources" db=0.3ms idle=27.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:47:42.478 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:47:42.479 [debug] QUERY OK source="media_items" db=0.4ms 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 [1463175] 05:47:42.479 [debug] Current batch of media processed. Will check again in 1000ms 05:47:43.479 [debug] Current batch of media processed. Will check again in 1000ms 05:47:44.480 [debug] Current batch of media processed. Will check again in 1000ms 05:47:45.481 [debug] Current batch of media processed. Will check again in 1000ms 05:47:46.482 [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" => 6, "timestamp" => 1761668862, "title" => "Next-door 10x engineer (Part 3)", "upload_date" => "20251028"} 05:47:46.483 [debug] QUERY OK source="sources" db=0.5ms idle=968.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:47:46.484 [debug] QUERY OK source="sources" db=0.2ms idle=969.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:47:46.485 [debug] QUERY OK source="media_items" db=0.4ms idle=969.9ms 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] 05:47:46.491 [debug] QUERY OK source="media_items" db=5.8ms idle=970.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" ["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)", "60f5612f-9366-4dd7-96f3-257769806ef6", "cwq2FfpTIAE", 352, false, "https://www.youtube.com/watch?v=cwq2FfpTIAE", 6, "/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-03-01 11:47:46Z], ~U[2026-03-01 11:47:46Z], "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]] 05:47:46.492 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=31.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:47:46.492 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:47:46.493 [debug] QUERY OK source="media_items" db=0.4ms 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 [1402023] 05:47:46.493 [debug] Current batch of media processed. Will check again in 1000ms 05:47:47.494 [debug] Current batch of media processed. Will check again in 1000ms 05:47:48.495 [debug] Current batch of media processed. Will check again in 1000ms 05:47:49.497 [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" => 7, "timestamp" => 1756398918, "title" => "10x Tourist", "upload_date" => "20250828"} 05:47:49.498 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1982.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:47:49.498 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1983.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:47:49.499 [debug] QUERY OK source="media_items" db=0.4ms idle=1984.5ms 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] 05:47:49.501 [debug] QUERY OK source="media_items" db=1.1ms idle=1035.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" ["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", "d8903856-07be-40b3-b7fb-ffedb7ff3adb", "JsB80oxyUYg", 338, false, "https://www.youtube.com/watch?v=JsB80oxyUYg", 7, "/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-03-01 11:47:49Z], ~U[2026-03-01 11:47:49Z], "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]] 05:47:49.502 [debug] QUERY OK source="sources" db=0.4ms idle=35.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:47:49.502 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:47:49.503 [debug] QUERY OK source="media_items" db=0.3ms 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 [955660] 05:47:49.503 [debug] Current batch of media processed. Will check again in 1000ms 05:47:50.504 [debug] Current batch of media processed. Will check again in 1000ms 05:47:51.505 [debug] Current batch of media processed. Will check again in 1000ms 05:47:52.506 [debug] Current batch of media processed. Will check again in 1000ms 05:47:53.507 [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" => 8, "timestamp" => 1753541434, "title" => "Interview with Cloud Architect in 2025", "upload_date" => "20250726"} 05:47:53.508 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=993.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:47:53.509 [debug] QUERY OK source="sources" db=0.3ms idle=994.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:47:53.510 [debug] QUERY OK source="media_items" db=0.4ms idle=995.4ms 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] 05:47:53.513 [debug] QUERY OK source="media_items" db=1.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" ["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", "34fe0685-cab8-44ed-b947-05134945b29f", "xIk0_uFV-rU", 297, false, "https://www.youtube.com/watch?v=xIk0_uFV-rU", 8, "/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-03-01 11:47:53Z], ~U[2026-03-01 11:47:53Z], "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]] 05:47:53.513 [debug] QUERY OK source="sources" db=0.4ms idle=38.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] 05:47:53.514 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 05:47:53.515 [debug] QUERY OK source="media_items" db=0.4ms 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 [794439] 05:47:53.515 [debug] Current batch of media processed. Will check again in 1000ms 05:47:54.516 [debug] Current batch of media processed. Will check again in 1000ms 05:47:55.517 [debug] Current batch of media processed. Will check again in 1000ms 05:47:56.518 [debug] Current batch of media processed. Will check again in 1000ms 05:47:57.519 [debug] Current batch of media processed. Will check again in 1000ms 05:47:58.520 [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" => 9, "timestamp" => 1753197703, "title" => "Interview with Senior DevOps engineer 2025", "upload_date" => "20250722"} 05:47:58.521 [debug] QUERY OK source="sources" db=0.3ms idle=1006.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] 05:47:58.522 [debug] QUERY OK source="sources" db=0.1ms idle=1007.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:47:58.522 [debug] QUERY OK source="media_items" db=0.3ms idle=37.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] 05:47:58.524 [debug] QUERY OK source="media_items" db=1.1ms 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" ["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", "0ddba71f-ba07-4e3b-8cb2-edac443e8c43", "rXPpkzdS-q4", 378, false, "https://www.youtube.com/watch?v=rXPpkzdS-q4", 9, "/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-03-01 11:47:58Z], ~U[2026-03-01 11:47:58Z], "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]] 05:47:58.524 [debug] QUERY OK source="sources" db=0.2ms idle=9.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [33] 05:47:58.525 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:47:58.525 [debug] QUERY OK source="media_items" db=0.3ms 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 [774887] 05:47:58.525 [debug] Current batch of media processed. Will check again in 1000ms 05:47:59.526 [debug] Current batch of media processed. Will check again in 1000ms 05:48:00.117 [info] {"source":"oban","duration":319,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:48:00.527 [debug] Current batch of media processed. Will check again in 1000ms 05:48:01.528 [debug] Current batch of media processed. Will check again in 1000ms 05:48:02.529 [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" => 10, "timestamp" => 1752261350, "title" => "0.1x engineer [Office Edition]", "upload_date" => "20250711"} 05:48:02.530 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1015.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:48:02.531 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [33] 05:48:02.532 [debug] QUERY OK source="media_items" db=0.4ms idle=17.2ms 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] 05:48:02.534 [debug] QUERY OK source="media_items" db=1.4ms idle=18.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" ["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]", "fc4f5a53-9da7-4424-9fd9-a4bc62677b37", "i7aQig-wjYA", 522, false, "https://www.youtube.com/watch?v=i7aQig-wjYA", 10, "/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-03-01 11:48:02Z], ~U[2026-03-01 11:48:02Z], "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]] 05:48:02.535 [debug] QUERY OK source="sources" db=0.3ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [33] 05:48:02.535 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:48:02.537 [debug] QUERY OK source="media_items" db=0.4ms queue=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 [722681] 05:48:02.537 [debug] Current batch of media processed. Will check again in 1000ms 05:48:03.537 [debug] Current batch of media processed. Will check again in 1000ms 05:48:04.538 [debug] Current batch of media processed. Will check again in 1000ms 05:48:05.539 [debug] Current batch of media processed. Will check again in 1000ms 05:48:06.540 [debug] Current batch of media processed. Will check again in 1000ms 05:48:07.541 [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" => 11, "timestamp" => 1750177210, "title" => "Interview with 0.1x engineer [Home Edition]", "upload_date" => "20250617"} 05:48:07.542 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1027.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:48:07.543 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1028.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:48:07.544 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=1028.9ms 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] 05:48:07.546 [debug] QUERY OK source="media_items" db=1.8ms queue=0.1ms idle=1029.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" ["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]", "86cbcc2f-bd33-46a1-b516-c490848bbc48", "hwG89HH0VcM", 286, false, "https://www.youtube.com/watch?v=hwG89HH0VcM", 11, "/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-03-01 11:48:07Z], ~U[2026-03-01 11:48:07Z], "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]] 05:48:07.547 [debug] QUERY OK source="sources" db=0.4ms idle=44.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] 05:48:07.548 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 05:48:07.549 [debug] QUERY OK source="media_items" db=0.4ms 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 [597386] 05:48:07.549 [debug] Current batch of media processed. Will check again in 1000ms 05:48:08.549 [debug] Current batch of media processed. Will check again in 1000ms 05:48:09.550 [debug] Current batch of media processed. Will check again in 1000ms 05:48:10.551 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "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", "duration" => 572, "filename" => "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e041500_Interview with King of AI Coding (Replit CEO - $1.2B).mp4", "id" => "r45-w5MKOlE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=r45-w5MKOlE", "playlist_index" => 12, "timestamp" => 1744731397, "title" => "Interview with King of AI Coding (Replit CEO - $1.2B)", "upload_date" => "20250415"} 05:48:10.552 [debug] QUERY OK source="sources" db=0.2ms idle=1037.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:48:10.553 [debug] QUERY OK source="sources" db=0.2ms idle=1038.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:48:10.553 [debug] QUERY OK source="media_items" db=0.5ms idle=1038.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] 05:48:10.555 [debug] QUERY OK source="media_items" db=1.4ms idle=1039.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)", "8a8d3ca8-8423-40cf-a11e-b917065b87e2", "r45-w5MKOlE", 572, false, "https://www.youtube.com/watch?v=r45-w5MKOlE", 12, "/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-03-01 11:48:10Z], ~U[2026-03-01 11:48:10Z], "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]] 05:48:10.556 [debug] QUERY OK source="sources" db=0.3ms idle=45.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:48:10.557 [debug] QUERY OK source="media_profiles" db=0.3ms queue=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] 05:48:10.557 [debug] QUERY OK source="media_items" db=0.4ms 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 [367296] 05:48:10.557 [debug] Current batch of media processed. Will check again in 1000ms 05:48:11.426 [info] {"source":"oban","duration":18256,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:48:11.558 [debug] Current batch of media processed. Will check again in 1000ms 05:48:12.559 [debug] Current batch of media processed. Will check again in 1000ms 05:48:13.560 [debug] Current batch of media processed. Will check again in 1000ms 05:48:14.561 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Vibe Coding [Senior Engineer]\n\nhttps://linkgraph.net/seniorvibecoder\n\nInterview with a Senior Engineer trying Vibe Coding with Jack Borrough Lentit aired on © The Vibe Coder 2025.\n\nvibe coding\nAI coding\nCuda\nprompt engineering\ncursor tricks\ncursorrules\nProgrammer humor\nJavascript humor\nProgramming jokes\nProgramming memes\njs jokes\nState of AI coding 2025\nSenior Frontend Job Interview\n\n\n\n#vibecoding \n#jokes\n#programming", "duration" => 346, "filename" => "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e040800_Senior Engineer tries Vibe Coding..mp4", "id" => "_2C2CNmK7dQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=_2C2CNmK7dQ", "playlist_index" => 13, "timestamp" => 1744128888, "title" => "Senior Engineer tries Vibe Coding.", "upload_date" => "20250408"} 05:48:14.562 [debug] QUERY OK source="sources" db=0.3ms idle=1045.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:48:14.563 [debug] QUERY OK source="sources" db=0.2ms queue=0.2ms idle=48.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:48:14.564 [debug] QUERY OK source="media_items" db=0.4ms idle=49.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-04-08 16:14:48Z], 33] 05:48:14.566 [debug] QUERY OK source="media_items" db=1.6ms idle=49.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" ["Vibe Coding [Senior Engineer]\n\nhttps://linkgraph.net/seniorvibecoder\n\nInterview with a Senior Engineer trying Vibe Coding with Jack Borrough Lentit aired on © The Vibe Coder 2025.\n\nvibe coding\nAI coding\nCuda\nprompt engineering\ncursor tricks\ncursorrules\nProgrammer humor\nJavascript humor\nProgramming jokes\nProgramming memes\njs jokes\nState of AI coding 2025\nSenior Frontend Job Interview\n\n\n\n#vibecoding \n#jokes\n#programming", "Senior Engineer tries Vibe Coding.", "b7816728-0cd4-415f-ae64-7832475fe2f5", "_2C2CNmK7dQ", 346, false, "https://www.youtube.com/watch?v=_2C2CNmK7dQ", 13, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e040800_Senior Engineer tries Vibe Coding..mp4", false, false, false, 33, [], 98, ~U[2025-04-08 16:14:48Z], ~U[2026-03-01 11:48:14Z], ~U[2026-03-01 11:48:14Z], "Vibe Coding [Senior Engineer]\n\nhttps://linkgraph.net/seniorvibecoder\n\nInterview with a Senior Engineer trying Vibe Coding with Jack Borrough Lentit aired on © The Vibe Coder 2025.\n\nvibe coding\nAI coding\nCuda\nprompt engineering\ncursor tricks\ncursorrules\nProgrammer humor\nJavascript humor\nProgramming jokes\nProgramming memes\njs jokes\nState of AI coding 2025\nSenior Frontend Job Interview\n\n\n\n#vibecoding \n#jokes\n#programming", "Senior Engineer tries Vibe Coding.", "_2C2CNmK7dQ", 346, false, "https://www.youtube.com/watch?v=_2C2CNmK7dQ", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e040800_Senior Engineer tries Vibe Coding..mp4", false, 33, ~U[2025-04-08 16:14:48Z]] 05:48:14.567 [debug] QUERY OK source="sources" db=0.3ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [33] 05:48:14.567 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:48:14.568 [debug] QUERY OK source="media_items" db=0.4ms 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 [367297] 05:48:14.568 [debug] Current batch of media processed. Will check again in 1000ms 05:48:15.569 [debug] Current batch of media processed. Will check again in 1000ms 05:48:16.570 [debug] Current batch of media processed. Will check again in 1000ms 05:48:17.436 [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/75/c7/75c719f3d48cb5fc80c093f7dd4e116737cb139291d4bbe52c7b26d155595d8a.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/50/43/5043227afc270f3df32dea012cf4c2de8812341338bca8218f5ee20b87fa6149.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 05:48:17.437 [debug] Gracefully stopping file follower 05:48:17.438 [debug] QUERY OK source="sources" db=0.3ms idle=923.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [33] 05:48:17.439 [debug] QUERY OK source="sources" db=0.3ms idle=924.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:48:17.440 [debug] QUERY OK source="media_items" db=0.6ms idle=924.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] 05:48:17.442 [debug] QUERY OK source="media_items" db=1.8ms idle=925.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" ["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).", "6f4661c6-c68a-4842-a92d-0e32faa3ca2a", "40SnEd1RWUU", 465, false, "https://www.youtube.com/watch?v=40SnEd1RWUU", 1, "/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-03-01 11:48:17Z], ~U[2026-03-01 11:48:17Z], "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]] 05:48:17.443 [debug] QUERY OK source="sources" db=0.4ms idle=918.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:48:17.444 [debug] QUERY OK source="media_items" db=0.7ms 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[2025-12-23 16:37:46Z], 33] 05:48:17.446 [debug] QUERY OK source="media_items" db=1.6ms 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" ["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", "5a57b310-65f0-4284-aab5-8b439dbc3056", "uMoql_RYVBQ", 231, false, "https://www.youtube.com/watch?v=uMoql_RYVBQ", 2, "/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-03-01 11:48:17Z], ~U[2026-03-01 11:48:17Z], "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]] 05:48:17.447 [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" = ?) [33] 05:48:17.447 [debug] QUERY OK source="media_items" db=0.4ms 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[2025-11-19 15:35:46Z], 33] 05:48:17.450 [debug] QUERY OK source="media_items" db=1.8ms 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" ["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…", "9257fa2e-c87b-4e1f-b4ff-fb208a95edf0", "d4JL1IDupYI", 288, false, "https://www.youtube.com/watch?v=d4JL1IDupYI", 3, "/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-03-01 11:48:17Z], ~U[2026-03-01 11:48:17Z], "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]] 05:48:17.450 [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" = ?) [33] 05:48:17.451 [debug] QUERY OK source="media_items" db=0.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[2025-11-12 15:07:04Z], 33] 05:48:17.454 [debug] QUERY OK source="media_items" db=1.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" ["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.", "723c7c6f-cbfe-4f44-876f-15ff2c75ba88", "3EfYy04o4J4", 342, false, "https://www.youtube.com/watch?v=3EfYy04o4J4", 4, "/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-03-01 11:48:17Z], ~U[2026-03-01 11:48:17Z], "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]] 05:48:17.454 [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" = ?) [33] 05:48:17.455 [debug] QUERY OK source="media_items" db=0.4ms 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[2025-11-05 15:58:01Z], 33] 05:48:17.457 [debug] QUERY OK source="media_items" db=1.7ms idle=4.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" ["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.", "0797be7f-8555-4103-8725-1149fa310b4d", "VCivp2qnhr8", 290, false, "https://www.youtube.com/watch?v=VCivp2qnhr8", 5, "/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-03-01 11:48:17Z], ~U[2026-03-01 11:48:17Z], "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]] 05:48:17.458 [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" = ?) [33] 05:48:17.459 [debug] QUERY OK source="media_items" db=0.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[2025-10-28 16:27:42Z], 33] 05:48:17.461 [debug] QUERY OK source="media_items" db=1.5ms 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" ["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)", "2a25d442-75b2-4c1b-87b7-0ee303c0abf5", "cwq2FfpTIAE", 352, false, "https://www.youtube.com/watch?v=cwq2FfpTIAE", 6, "/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-03-01 11:48:17Z], ~U[2026-03-01 11:48:17Z], "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]] 05:48:17.462 [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" = ?) [33] 05:48:17.463 [debug] QUERY OK source="media_items" db=0.4ms idle=4.9ms 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] 05:48:17.465 [debug] QUERY OK source="media_items" db=1.5ms 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" ["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", "e59162df-54d0-4c70-a6de-6c2378a5025e", "JsB80oxyUYg", 338, false, "https://www.youtube.com/watch?v=JsB80oxyUYg", 7, "/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-03-01 11:48:17Z], ~U[2026-03-01 11:48:17Z], "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]] 05:48:17.465 [debug] QUERY OK source="sources" db=0.3ms idle=6.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [33] 05:48:17.466 [debug] QUERY OK source="media_items" db=0.5ms 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[2025-07-26 14:50:34Z], 33] 05:48:17.469 [debug] QUERY OK source="media_items" db=1.8ms 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" ["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", "67f24ae0-2aa4-4210-994c-e736423aba9c", "xIk0_uFV-rU", 297, false, "https://www.youtube.com/watch?v=xIk0_uFV-rU", 8, "/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-03-01 11:48:17Z], ~U[2026-03-01 11:48:17Z], "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]] 05:48:17.470 [debug] QUERY OK source="sources" db=0.6ms idle=6.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [33] 05:48:17.470 [debug] QUERY OK source="media_items" db=0.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[2025-07-22 15:21:43Z], 33] 05:48:17.475 [debug] QUERY OK source="media_items" db=3.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" ["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", "3098ca12-1114-4699-aa92-f42aedd416c9", "rXPpkzdS-q4", 378, false, "https://www.youtube.com/watch?v=rXPpkzdS-q4", 9, "/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-03-01 11:48:17Z], ~U[2026-03-01 11:48:17Z], "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]] 05:48:17.475 [debug] QUERY OK source="sources" db=0.3ms idle=8.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:48:17.476 [debug] QUERY OK source="media_items" db=0.5ms 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[2025-07-11 19:15:50Z], 33] 05:48:17.478 [debug] QUERY OK source="media_items" db=1.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" ["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]", "3eee2211-f578-42a3-82e6-664d5de5bba0", "i7aQig-wjYA", 522, false, "https://www.youtube.com/watch?v=i7aQig-wjYA", 10, "/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-03-01 11:48:17Z], ~U[2026-03-01 11:48:17Z], "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]] 05:48:17.479 [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" = ?) [33] 05:48:17.480 [debug] QUERY OK source="media_items" db=0.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[2025-06-17 16:20:10Z], 33] 05:48:17.482 [debug] QUERY OK source="media_items" db=1.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" ["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]", "e1441418-8f32-475a-8466-6749cf5f8367", "hwG89HH0VcM", 286, false, "https://www.youtube.com/watch?v=hwG89HH0VcM", 11, "/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-03-01 11:48:17Z], ~U[2026-03-01 11:48:17Z], "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]] 05:48:17.483 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [33] 05:48:17.484 [debug] QUERY OK source="media_items" db=0.5ms idle=4.9ms 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] 05:48:17.486 [debug] QUERY OK source="media_items" db=1.6ms queue=0.1ms 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" ["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)", "8b8ca21e-9750-480a-aab1-483f625df0b5", "r45-w5MKOlE", 572, false, "https://www.youtube.com/watch?v=r45-w5MKOlE", 12, "/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-03-01 11:48:17Z], ~U[2026-03-01 11:48:17Z], "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]] 05:48:17.487 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=6.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [33] 05:48:17.488 [debug] QUERY OK source="media_items" db=0.6ms 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[2025-04-08 16:14:48Z], 33] 05:48:17.677 [debug] QUERY OK source="media_items" db=188.1ms 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" ["Vibe Coding [Senior Engineer]\n\nhttps://linkgraph.net/seniorvibecoder\n\nInterview with a Senior Engineer trying Vibe Coding with Jack Borrough Lentit aired on © The Vibe Coder 2025.\n\nvibe coding\nAI coding\nCuda\nprompt engineering\ncursor tricks\ncursorrules\nProgrammer humor\nJavascript humor\nProgramming jokes\nProgramming memes\njs jokes\nState of AI coding 2025\nSenior Frontend Job Interview\n\n\n\n#vibecoding \n#jokes\n#programming", "Senior Engineer tries Vibe Coding.", "678081b8-e460-4897-a3a3-1b72091c290d", "_2C2CNmK7dQ", 346, false, "https://www.youtube.com/watch?v=_2C2CNmK7dQ", 13, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e040800_Senior Engineer tries Vibe Coding..mp4", false, false, false, 33, [], 98, ~U[2025-04-08 16:14:48Z], ~U[2026-03-01 11:48:17Z], ~U[2026-03-01 11:48:17Z], "Vibe Coding [Senior Engineer]\n\nhttps://linkgraph.net/seniorvibecoder\n\nInterview with a Senior Engineer trying Vibe Coding with Jack Borrough Lentit aired on © The Vibe Coder 2025.\n\nvibe coding\nAI coding\nCuda\nprompt engineering\ncursor tricks\ncursorrules\nProgrammer humor\nJavascript humor\nProgramming jokes\nProgramming memes\njs jokes\nState of AI coding 2025\nSenior Frontend Job Interview\n\n\n\n#vibecoding \n#jokes\n#programming", "Senior Engineer tries Vibe Coding.", "_2C2CNmK7dQ", 346, false, "https://www.youtube.com/watch?v=_2C2CNmK7dQ", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e040800_Senior Engineer tries Vibe Coding..mp4", false, 33, ~U[2025-04-08 16:14:48Z]] 05:48:17.678 [debug] QUERY OK source="sources" db=0.9ms idle=191.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] 05:48:17.679 [debug] QUERY OK source="media_items" db=0.6ms idle=191.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-04-01 15:38:00Z], 33] 05:48:17.686 [debug] QUERY OK source="media_items" db=5.7ms 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" ["Vibe Coding\n\nhttps://linkgraph.net/stack/vibecoder\n\nInterview with a Professional Vibe Coder with Kai Lentit aired on © The Viboe Coder 2025.\n\nAI coding\nprompt engineering\nthree js\nwindsurf\nreplit\ncursor tricks\ncursor rules\nProgrammer humor\nVibe code Jam\nJavascript humor\nProgramming jokes\nProgramming memes\njs jokes\nState of AI coding 2025\nJunior Frontend Job Interview\n\n\n\n#vibecoding \n#jokes\n#programming", "Interview with Vibe Coder in 2025", "d04816a9-ee3a-4aba-89a2-c504fafb8403", "JeNS1ZNHQs8", 356, false, "https://www.youtube.com/watch?v=JeNS1ZNHQs8", 14, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e040100_Interview with Vibe Coder in 2025.mp4", false, false, false, 33, [], 98, ~U[2025-04-01 15:38:00Z], ~U[2026-03-01 11:48:17Z], ~U[2026-03-01 11:48:17Z], "Vibe Coding\n\nhttps://linkgraph.net/stack/vibecoder\n\nInterview with a Professional Vibe Coder with Kai Lentit aired on © The Viboe Coder 2025.\n\nAI coding\nprompt engineering\nthree js\nwindsurf\nreplit\ncursor tricks\ncursor rules\nProgrammer humor\nVibe code Jam\nJavascript humor\nProgramming jokes\nProgramming memes\njs jokes\nState of AI coding 2025\nJunior Frontend Job Interview\n\n\n\n#vibecoding \n#jokes\n#programming", "Interview with Vibe Coder in 2025", "JeNS1ZNHQs8", 356, false, "https://www.youtube.com/watch?v=JeNS1ZNHQs8", "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e040100_Interview with Vibe Coder in 2025.mp4", false, 33, ~U[2025-04-01 15:38:00Z]] 05:48:17.687 [debug] QUERY OK source="sources" db=0.7ms idle=9.5ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-01 11:48:17Z], ~U[2026-03-01 11:48:17Z], 33] 05:48:17.688 [debug] QUERY OK source="media_items" db=0.8ms idle=9.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "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] 05:48:17.690 [debug] QUERY OK source="media_items" db=0.8ms 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")))) [33] 05:48:17.690 [debug] QUERY OK source="media_items" db=0.4ms idle=10.3ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [33] 05:48:17.693 [debug] QUERY OK source="tasks" db=0.4ms idle=4.2ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189142, 33, ~U[2026-03-01 11:48:17Z], ~U[2026-03-01 11:48:17Z]] 05:48:17.694 [info] {"args":{"id":33},"id":188938,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":54274794,"event":"job:stop","queue_time":513029,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 05:48:26.087 [info] GET /settings 05:48:26.088 [debug] Processing with PinchflatWeb.Settings.SettingController.show/2 Parameters: %{} Pipelines: [:browser] 05:48:26.088 [debug] QUERY OK source="settings" db=0.1ms idle=573.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:48:26.089 [debug] QUERY OK source="settings" db=0.1ms idle=574.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:48:26.089 [debug] QUERY OK source="settings" db=0.1ms idle=574.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:48:26.090 [debug] QUERY OK source="settings" db=0.1ms idle=575.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:48:26.091 [info] Sent 200 in 3ms 05:48:38.728 [info] {"args":{"id":23},"id":187436,"meta":{},"system_time":1772365718728738301,"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"]} 05:48:38.729 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [23] 05:48:38.729 [debug] QUERY OK source="settings" db=0.2ms idle=1215.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:48:38.730 [debug] QUERY OK source="media_items" db=0.5ms idle=1010.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")))) [23] 05:48:38.731 [debug] QUERY OK source="media_items" db=0.2ms idle=8.9ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [23] 05:48:38.731 [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] 05:48:38.731 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:48:38.732 [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 [] 05:48:38.732 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 05:48:38.732 [debug] Current batch of media processed. Will check again in 1000ms 05:48:38.732 [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 [] 05:48:38.733 [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 [] 05:48:38.733 [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 [] 05:48:38.733 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/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/8c/45/8c456f81844a3d7bdc957e3f7a560fbef2a10a832312f5ad53022d6c84d57957.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:48:39.733 [debug] Current batch of media processed. Will check again in 1000ms 05:48:40.734 [debug] Current batch of media processed. Will check again in 1000ms 05:48:41.441 [info] {"source":"oban","duration":14382,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 05:48:41.735 [debug] Current batch of media processed. Will check again in 1000ms 05:48:42.736 [debug] Current batch of media processed. Will check again in 1000ms 05:48:43.737 [debug] Current batch of media processed. Will check again in 1000ms 05:48:44.738 [debug] Current batch of media processed. Will check again in 1000ms 05:48:45.739 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Is Rust the next big deal in developing high-performance apps? I give you an introduction to what Rust is as well as all the advantages it has over languages like C and C++.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "duration" => 606, "filename" => "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e060900_Learn RUST to FUTURE PROOF your developer career | Rust Fundamentals Part 1.mp4", "id" => "NDMr9W0hbaI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=NDMr9W0hbaI", "playlist_index" => 1, "timestamp" => 1686313885, "title" => "Learn RUST to FUTURE PROOF your developer career | Rust Fundamentals Part 1", "upload_date" => "20230609"} 05:48:45.740 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1225.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [23] 05:48:45.741 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [23] 05:48:45.742 [debug] QUERY OK source="media_items" db=0.3ms idle=1227.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-06-09 12:31:25Z], 23] 05:48:45.745 [debug] QUERY OK source="media_items" db=2.7ms idle=1008.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" ["Is Rust the next big deal in developing high-performance apps? I give you an introduction to what Rust is as well as all the advantages it has over languages like C and C++.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "Learn RUST to FUTURE PROOF your developer career | Rust Fundamentals Part 1", "1f94a0b8-801e-4897-8059-fb628538713f", "NDMr9W0hbaI", 606, false, "https://www.youtube.com/watch?v=NDMr9W0hbaI", 1, "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e060900_Learn RUST to FUTURE PROOF your developer career | Rust Fundamentals Part 1.mp4", false, false, false, 23, [], 1, ~U[2023-06-09 12:31:25Z], ~U[2026-03-01 11:48:45Z], ~U[2026-03-01 11:48:45Z], "Is Rust the next big deal in developing high-performance apps? I give you an introduction to what Rust is as well as all the advantages it has over languages like C and C++.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "Learn RUST to FUTURE PROOF your developer career | Rust Fundamentals Part 1", "NDMr9W0hbaI", 606, false, "https://www.youtube.com/watch?v=NDMr9W0hbaI", "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e060900_Learn RUST to FUTURE PROOF your developer career | Rust Fundamentals Part 1.mp4", false, 23, ~U[2023-06-09 12:31:25Z]] 05:48:45.746 [debug] QUERY OK source="sources" db=0.4ms idle=9.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [23] 05:48:45.747 [debug] QUERY OK source="media_profiles" db=0.4ms idle=5.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:48:45.748 [debug] QUERY OK source="media_items" db=0.5ms 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 [308042] 05:48:45.748 [debug] Current batch of media processed. Will check again in 1000ms 05:48:46.749 [debug] Current batch of media processed. Will check again in 1000ms 05:48:47.750 [debug] Current batch of media processed. Will check again in 1000ms 05:48:48.751 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "We install Rust from the command line and run our first \"Hello, world!\" program.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "duration" => 514, "filename" => "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e061000_Your FIRST STEPS as a Rustacean | Rust Fundamentals Part 2.mp4", "id" => "8SGqDJs9Qlo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=8SGqDJs9Qlo", "playlist_index" => 2, "timestamp" => 1686409602, "title" => "Your FIRST STEPS as a Rustacean | Rust Fundamentals Part 2", "upload_date" => "20230610"} 05:48:48.752 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1237.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 (?)) [23] 05:48:48.753 [debug] QUERY OK source="sources" db=0.2ms idle=1238.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [23] 05:48:48.753 [debug] QUERY OK source="media_items" db=0.3ms idle=1238.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-06-10 15:06:42Z], 23] 05:48:48.756 [debug] QUERY OK source="media_items" db=1.5ms 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" ["We install Rust from the command line and run our first \"Hello, world!\" program.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "Your FIRST STEPS as a Rustacean | Rust Fundamentals Part 2", "aaedc2c4-2236-40ea-b49c-e26b602b8a7c", "8SGqDJs9Qlo", 514, false, "https://www.youtube.com/watch?v=8SGqDJs9Qlo", 2, "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e061000_Your FIRST STEPS as a Rustacean | Rust Fundamentals Part 2.mp4", false, false, false, 23, [], 1, ~U[2023-06-10 15:06:42Z], ~U[2026-03-01 11:48:48Z], ~U[2026-03-01 11:48:48Z], "We install Rust from the command line and run our first \"Hello, world!\" program.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "Your FIRST STEPS as a Rustacean | Rust Fundamentals Part 2", "8SGqDJs9Qlo", 514, false, "https://www.youtube.com/watch?v=8SGqDJs9Qlo", "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e061000_Your FIRST STEPS as a Rustacean | Rust Fundamentals Part 2.mp4", false, 23, ~U[2023-06-10 15:06:42Z]] 05:48:48.756 [debug] QUERY OK source="sources" db=0.3ms idle=13.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [23] 05:48:48.757 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 05:48:48.758 [debug] QUERY OK source="media_items" db=0.4ms 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 [308064] 05:48:48.758 [debug] Current batch of media processed. Will check again in 1000ms 05:48:49.759 [debug] Current batch of media processed. Will check again in 1000ms 05:48:50.760 [debug] Current batch of media processed. Will check again in 1000ms 05:48:51.761 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today we dive into our first real programming experience with Rust and find out, how variables are defined, how to make them mutable, and what the basic built-in datatypes are.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "duration" => 843, "filename" => "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e062000_Rust's MUTABILITY system is a Game Changer | Rust Fundamentals Part 3.mp4", "id" => "SlRh7O7_1m0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=SlRh7O7_1m0", "playlist_index" => 3, "timestamp" => 1687242505, "title" => "Rust's MUTABILITY system is a Game Changer | Rust Fundamentals Part 3", "upload_date" => "20230620"} 05:48:51.762 [debug] QUERY OK source="sources" db=0.3ms idle=1247.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 (?)) [23] 05:48:51.763 [debug] QUERY OK source="sources" db=0.2ms idle=1248.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [23] 05:48:51.763 [debug] QUERY OK source="media_items" db=0.2ms idle=1248.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-06-20 06:28:25Z], 23] 05:48:51.766 [debug] QUERY OK source="media_items" db=2.0ms idle=1017.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" ["Today we dive into our first real programming experience with Rust and find out, how variables are defined, how to make them mutable, and what the basic built-in datatypes are.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "Rust's MUTABILITY system is a Game Changer | Rust Fundamentals Part 3", "d477c902-b3c6-423c-9b52-eebd3105941f", "SlRh7O7_1m0", 843, false, "https://www.youtube.com/watch?v=SlRh7O7_1m0", 3, "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e062000_Rust's MUTABILITY system is a Game Changer | Rust Fundamentals Part 3.mp4", false, false, false, 23, [], 1, ~U[2023-06-20 06:28:25Z], ~U[2026-03-01 11:48:51Z], ~U[2026-03-01 11:48:51Z], "Today we dive into our first real programming experience with Rust and find out, how variables are defined, how to make them mutable, and what the basic built-in datatypes are.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "Rust's MUTABILITY system is a Game Changer | Rust Fundamentals Part 3", "SlRh7O7_1m0", 843, false, "https://www.youtube.com/watch?v=SlRh7O7_1m0", "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e062000_Rust's MUTABILITY system is a Game Changer | Rust Fundamentals Part 3.mp4", false, 23, ~U[2023-06-20 06:28:25Z]] 05:48:51.766 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [23] 05:48:51.767 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 05:48:51.768 [debug] QUERY OK source="media_items" db=0.4ms 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 [308065] 05:48:51.768 [debug] Current batch of media processed. Will check again in 1000ms 05:48:52.768 [debug] Current batch of media processed. Will check again in 1000ms 05:48:53.769 [debug] Current batch of media processed. Will check again in 1000ms 05:48:54.770 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Let's get into structuring and reusing code in Rust with functions. This tutorial covers the syntax of creating and calling functions. We will go into details regarding mutability and ownership of the parameters in a future video.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "duration" => 311, "filename" => "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e062500_FUNCTIONS as the Building Block for MODULARITY | Rust Fundamentals Part 4.mp4", "id" => "xfr_B9d33FE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=xfr_B9d33FE", "playlist_index" => 4, "timestamp" => 1687724053, "title" => "FUNCTIONS as the Building Block for MODULARITY | Rust Fundamentals Part 4", "upload_date" => "20230625"} 05:48:54.771 [debug] QUERY OK source="sources" db=0.3ms idle=1256.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [23] 05:48:54.772 [debug] QUERY OK source="sources" db=0.2ms idle=1257.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [23] 05:48:54.772 [debug] QUERY OK source="media_items" db=0.3ms idle=1257.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-06-25 20:14:13Z], 23] 05:48:54.775 [debug] QUERY OK source="media_items" db=2.4ms idle=1020.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" ["Let's get into structuring and reusing code in Rust with functions. This tutorial covers the syntax of creating and calling functions. We will go into details regarding mutability and ownership of the parameters in a future video.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "FUNCTIONS as the Building Block for MODULARITY | Rust Fundamentals Part 4", "1f8dfdaf-14c6-4ca3-991c-412edefd3494", "xfr_B9d33FE", 311, false, "https://www.youtube.com/watch?v=xfr_B9d33FE", 4, "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e062500_FUNCTIONS as the Building Block for MODULARITY | Rust Fundamentals Part 4.mp4", false, false, false, 23, [], 1, ~U[2023-06-25 20:14:13Z], ~U[2026-03-01 11:48:54Z], ~U[2026-03-01 11:48:54Z], "Let's get into structuring and reusing code in Rust with functions. This tutorial covers the syntax of creating and calling functions. We will go into details regarding mutability and ownership of the parameters in a future video.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "FUNCTIONS as the Building Block for MODULARITY | Rust Fundamentals Part 4", "xfr_B9d33FE", 311, false, "https://www.youtube.com/watch?v=xfr_B9d33FE", "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e062500_FUNCTIONS as the Building Block for MODULARITY | Rust Fundamentals Part 4.mp4", false, 23, ~U[2023-06-25 20:14:13Z]] 05:48:54.776 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [23] 05:48:54.777 [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] 05:48:54.777 [debug] QUERY OK source="media_items" db=0.3ms 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 [308066] 05:48:54.777 [debug] Current batch of media processed. Will check again in 1000ms 05:48:55.778 [debug] Current batch of media processed. Will check again in 1000ms 05:48:56.779 [debug] Current batch of media processed. Will check again in 1000ms 05:48:57.780 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Variables in your code are stored either on the stack or the heap. Especially the lifetime management of heap memory is a complex topic and over the years, programming languages offered various solutions to this problem.\n\nRust deals with this issue via ownership and borrowing. The idea behind ownership is that every variable has exactly one owner (a pointer on the stack) at every point in time. Once this owner goes out of scope, the allocated memory on the heap is freed and the resources can no longer be used. This seemingly straight forward approach solves the problem of memory leaks and gets rid of a garbage collector, as in so many other languages, at the same time.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "duration" => 1259, "filename" => "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e070800_Do you know who OWNS your DATA? | Rust Fundamentals Part 5.mp4", "id" => "lxNnnPPR4aA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=lxNnnPPR4aA", "playlist_index" => 5, "timestamp" => 1688847888, "title" => "Do you know who OWNS your DATA? | Rust Fundamentals Part 5", "upload_date" => "20230708"} 05:48:57.781 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1266.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 (?)) [23] 05:48:57.782 [debug] QUERY OK source="sources" db=0.3ms idle=1267.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [23] 05:48:57.782 [debug] QUERY OK source="media_items" db=0.2ms idle=1267.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-07-08 20:24:48Z], 23] 05:48:57.785 [debug] QUERY OK source="media_items" db=2.1ms idle=1024.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" ["Variables in your code are stored either on the stack or the heap. Especially the lifetime management of heap memory is a complex topic and over the years, programming languages offered various solutions to this problem.\n\nRust deals with this issue via ownership and borrowing. The idea behind ownership is that every variable has exactly one owner (a pointer on the stack) at every point in time. Once this owner goes out of scope, the allocated memory on the heap is freed and the resources can no longer be used. This seemingly straight forward approach solves the problem of memory leaks and gets rid of a garbage collector, as in so many other languages, at the same time.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "Do you know who OWNS your DATA? | Rust Fundamentals Part 5", "0befe723-ffc4-4cb9-a464-919c58772943", "lxNnnPPR4aA", 1259, false, "https://www.youtube.com/watch?v=lxNnnPPR4aA", 5, "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e070800_Do you know who OWNS your DATA? | Rust Fundamentals Part 5.mp4", false, false, false, 23, [], 1, ~U[2023-07-08 20:24:48Z], ~U[2026-03-01 11:48:57Z], ~U[2026-03-01 11:48:57Z], "Variables in your code are stored either on the stack or the heap. Especially the lifetime management of heap memory is a complex topic and over the years, programming languages offered various solutions to this problem.\n\nRust deals with this issue via ownership and borrowing. The idea behind ownership is that every variable has exactly one owner (a pointer on the stack) at every point in time. Once this owner goes out of scope, the allocated memory on the heap is freed and the resources can no longer be used. This seemingly straight forward approach solves the problem of memory leaks and gets rid of a garbage collector, as in so many other languages, at the same time.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "Do you know who OWNS your DATA? | Rust Fundamentals Part 5", "lxNnnPPR4aA", 1259, false, "https://www.youtube.com/watch?v=lxNnnPPR4aA", "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e070800_Do you know who OWNS your DATA? | Rust Fundamentals Part 5.mp4", false, 23, ~U[2023-07-08 20:24:48Z]] 05:48:57.786 [debug] QUERY OK source="sources" db=0.3ms idle=25.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [23] 05:48:57.786 [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] 05:48:57.787 [debug] QUERY OK source="media_items" db=0.3ms idle=4.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [308067] 05:48:57.787 [debug] Current batch of media processed. Will check again in 1000ms 05:48:58.788 [debug] Current batch of media processed. Will check again in 1000ms 05:48:59.789 [debug] Current batch of media processed. Will check again in 1000ms 05:49:00.118 [info] {"source":"oban","duration":432,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:49:00.790 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "One of the most distinguishing features that Rust has to offer is its way to handle memory management: via ownership and borrowing. In this video, I explain how ownership works, why we need a borrow checker and what kind of safety it gives us compared to other languages.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "duration" => 1266, "filename" => "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e071700_Learn these 3 RULES to master Borrowing! | Rust Fundamentals Part 6.mp4", "id" => "8se_9NtF4wQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=8se_9NtF4wQ", "playlist_index" => 6, "timestamp" => 1689631948, "title" => "Learn these 3 RULES to master Borrowing! | Rust Fundamentals Part 6", "upload_date" => "20230717"} 05:49:00.791 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1276.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [23] 05:49:00.793 [debug] QUERY OK source="sources" db=0.5ms queue=0.2ms idle=1277.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" = ?) [23] 05:49:00.793 [debug] QUERY OK source="media_items" db=0.4ms idle=1027.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-07-17 22:12:28Z], 23] 05:49:00.796 [debug] QUERY OK source="media_items" db=1.6ms idle=675.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" ["One of the most distinguishing features that Rust has to offer is its way to handle memory management: via ownership and borrowing. In this video, I explain how ownership works, why we need a borrow checker and what kind of safety it gives us compared to other languages.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "Learn these 3 RULES to master Borrowing! | Rust Fundamentals Part 6", "09d16ec9-f1da-411e-b664-87d8812bc839", "8se_9NtF4wQ", 1266, false, "https://www.youtube.com/watch?v=8se_9NtF4wQ", 6, "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e071700_Learn these 3 RULES to master Borrowing! | Rust Fundamentals Part 6.mp4", false, false, false, 23, [], 1, ~U[2023-07-17 22:12:28Z], ~U[2026-03-01 11:49:00Z], ~U[2026-03-01 11:49:00Z], "One of the most distinguishing features that Rust has to offer is its way to handle memory management: via ownership and borrowing. In this video, I explain how ownership works, why we need a borrow checker and what kind of safety it gives us compared to other languages.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "Learn these 3 RULES to master Borrowing! | Rust Fundamentals Part 6", "8se_9NtF4wQ", 1266, false, "https://www.youtube.com/watch?v=8se_9NtF4wQ", "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e071700_Learn these 3 RULES to master Borrowing! | Rust Fundamentals Part 6.mp4", false, 23, ~U[2023-07-17 22:12:28Z]] 05:49:00.796 [debug] QUERY OK source="sources" db=0.5ms idle=28.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" = ?) [23] 05:49:00.797 [debug] QUERY OK source="media_profiles" db=0.5ms 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] 05:49:00.798 [debug] QUERY OK source="media_items" db=0.5ms 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 [308068] 05:49:00.798 [debug] Current batch of media processed. Will check again in 1000ms 05:49:01.799 [debug] Current batch of media processed. Will check again in 1000ms 05:49:02.800 [debug] Current batch of media processed. Will check again in 1000ms 05:49:03.801 [debug] Current batch of media processed. Will check again in 1000ms 05:49:04.802 [debug] Current batch of media processed. Will check again in 1000ms 05:49:05.803 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Arrays and vectors are very alike, but their difference in terms of performance is staggering. Although allocation of memory on the stack makes arrays blazingly fast, sometimes you can not live without the dynamic nature of vectors.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding\n\n00:00 Intro\n00:28 Arrays\n02:40 Vectors\n04:08 Arrays and Vectors as Function Parameters\n06:25 Slices\n10:36 Performance Implications\n13:08 Outro", "duration" => 819, "filename" => "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e073100_Why Vectors slow down your Code | Rust Fundamentals Part 7.mp4", "id" => "HLWeD0Q-rfs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=HLWeD0Q-rfs", "playlist_index" => 7, "timestamp" => 1690836533, "title" => "Why Vectors slow down your Code | Rust Fundamentals Part 7", "upload_date" => "20230731"} 05:49:05.804 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1289.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [23] 05:49:05.805 [debug] QUERY OK source="sources" db=0.3ms idle=1290.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" = ?) [23] 05:49:05.806 [debug] QUERY OK source="media_items" db=0.3ms idle=1291.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-07-31 20:48:53Z], 23] 05:49:05.809 [debug] QUERY OK source="media_items" db=2.2ms idle=1031.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" ["Arrays and vectors are very alike, but their difference in terms of performance is staggering. Although allocation of memory on the stack makes arrays blazingly fast, sometimes you can not live without the dynamic nature of vectors.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding\n\n00:00 Intro\n00:28 Arrays\n02:40 Vectors\n04:08 Arrays and Vectors as Function Parameters\n06:25 Slices\n10:36 Performance Implications\n13:08 Outro", "Why Vectors slow down your Code | Rust Fundamentals Part 7", "a6399cab-b00c-4ba7-8e27-8943d87ea8cf", "HLWeD0Q-rfs", 819, false, "https://www.youtube.com/watch?v=HLWeD0Q-rfs", 7, "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e073100_Why Vectors slow down your Code | Rust Fundamentals Part 7.mp4", false, false, false, 23, [], 1, ~U[2023-07-31 20:48:53Z], ~U[2026-03-01 11:49:05Z], ~U[2026-03-01 11:49:05Z], "Arrays and vectors are very alike, but their difference in terms of performance is staggering. Although allocation of memory on the stack makes arrays blazingly fast, sometimes you can not live without the dynamic nature of vectors.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding\n\n00:00 Intro\n00:28 Arrays\n02:40 Vectors\n04:08 Arrays and Vectors as Function Parameters\n06:25 Slices\n10:36 Performance Implications\n13:08 Outro", "Why Vectors slow down your Code | Rust Fundamentals Part 7", "HLWeD0Q-rfs", 819, false, "https://www.youtube.com/watch?v=HLWeD0Q-rfs", "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e073100_Why Vectors slow down your Code | Rust Fundamentals Part 7.mp4", false, 23, ~U[2023-07-31 20:48:53Z]] 05:49:05.810 [debug] QUERY OK source="sources" db=0.4ms idle=31.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [23] 05:49:05.810 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:49:05.811 [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 [308069] 05:49:05.811 [debug] Current batch of media processed. Will check again in 1000ms 05:49:06.812 [debug] Current batch of media processed. Will check again in 1000ms 05:49:07.813 [debug] Current batch of media processed. Will check again in 1000ms 05:49:08.814 [debug] Current batch of media processed. Will check again in 1000ms 05:49:09.815 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Loops are ubiquitous in programming, and that's no different in Rust. We go through the three ways to loop in Rust, then discuss performance implications and common pitfalls.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding\n\n00:00 Intro\n00:40 loop\n01:56 while\n03:21 for\n05:00 for with step-size\n05:46 sum()\n06:31 Iterating over an array\n07:31 Performance \n10:16 Strings & Ownership in loops\n14:24 Outro", "duration" => 922, "filename" => "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e080700_Avoid common PITFALLS with LOOPS | Rust Fundamentals Part 8.mp4", "id" => "y_jzzM1VyD8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=y_jzzM1VyD8", "playlist_index" => 8, "timestamp" => 1691380836, "title" => "Avoid common PITFALLS with LOOPS | Rust Fundamentals Part 8", "upload_date" => "20230807"} 05:49:09.816 [debug] QUERY OK source="sources" db=0.5ms idle=301.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [23] 05:49:09.817 [debug] QUERY OK source="sources" db=0.2ms idle=302.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [23] 05:49:09.817 [debug] QUERY OK source="media_items" db=0.3ms idle=302.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-08-07 04:00:36Z], 23] 05:49:09.821 [debug] QUERY OK source="media_items" db=2.6ms idle=303.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" ["Loops are ubiquitous in programming, and that's no different in Rust. We go through the three ways to loop in Rust, then discuss performance implications and common pitfalls.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding\n\n00:00 Intro\n00:40 loop\n01:56 while\n03:21 for\n05:00 for with step-size\n05:46 sum()\n06:31 Iterating over an array\n07:31 Performance \n10:16 Strings & Ownership in loops\n14:24 Outro", "Avoid common PITFALLS with LOOPS | Rust Fundamentals Part 8", "130e406a-1b7b-445f-8927-9ffd1fe8b5fd", "y_jzzM1VyD8", 922, false, "https://www.youtube.com/watch?v=y_jzzM1VyD8", 8, "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e080700_Avoid common PITFALLS with LOOPS | Rust Fundamentals Part 8.mp4", false, false, false, 23, [], 1, ~U[2023-08-07 04:00:36Z], ~U[2026-03-01 11:49:09Z], ~U[2026-03-01 11:49:09Z], "Loops are ubiquitous in programming, and that's no different in Rust. We go through the three ways to loop in Rust, then discuss performance implications and common pitfalls.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding\n\n00:00 Intro\n00:40 loop\n01:56 while\n03:21 for\n05:00 for with step-size\n05:46 sum()\n06:31 Iterating over an array\n07:31 Performance \n10:16 Strings & Ownership in loops\n14:24 Outro", "Avoid common PITFALLS with LOOPS | Rust Fundamentals Part 8", "y_jzzM1VyD8", 922, false, "https://www.youtube.com/watch?v=y_jzzM1VyD8", "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e080700_Avoid common PITFALLS with LOOPS | Rust Fundamentals Part 8.mp4", false, 23, ~U[2023-08-07 04:00:36Z]] 05:49:09.821 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=34.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [23] 05:49:09.822 [debug] QUERY OK source="media_profiles" db=0.4ms queue=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] 05:49:09.823 [debug] QUERY OK source="media_items" db=0.3ms idle=5.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [308070] 05:49:09.823 [debug] Current batch of media processed. Will check again in 1000ms 05:49:10.824 [debug] Current batch of media processed. Will check again in 1000ms 05:49:11.461 [info] {"source":"oban","duration":18563,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:49:11.825 [debug] Current batch of media processed. Will check again in 1000ms 05:49:12.826 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "#rustlang #tutorial \nOpposed to other languages, Rust fully embraces the concept of enums and elevates it to one of the core principles used in the language. In this video, we explore how enums are defined, how we can match on them and why they are so safe and powerful in Rust.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "duration" => 1033, "filename" => "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e081500_ENUMS are at the HEART of Rust | Rust Fundamentals Part 9.mp4", "id" => "-nFDSDE_2Nw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=-nFDSDE_2Nw", "playlist_index" => 9, "timestamp" => 1692131752, "title" => "ENUMS are at the HEART of Rust | Rust Fundamentals Part 9", "upload_date" => "20230815"} 05:49:12.827 [debug] QUERY OK source="sources" db=0.6ms idle=1312.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 (?)) [23] 05:49:12.828 [debug] QUERY OK source="sources" db=0.3ms idle=1313.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [23] 05:49:12.829 [debug] QUERY OK source="media_items" db=0.3ms idle=1037.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-08-15 20:35:52Z], 23] 05:49:12.832 [debug] QUERY OK source="media_items" db=2.0ms idle=315.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" ["#rustlang #tutorial \nOpposed to other languages, Rust fully embraces the concept of enums and elevates it to one of the core principles used in the language. In this video, we explore how enums are defined, how we can match on them and why they are so safe and powerful in Rust.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "ENUMS are at the HEART of Rust | Rust Fundamentals Part 9", "95be02fc-62d9-4a4e-88d0-4a7e73c1aa0d", "-nFDSDE_2Nw", 1033, false, "https://www.youtube.com/watch?v=-nFDSDE_2Nw", 9, "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e081500_ENUMS are at the HEART of Rust | Rust Fundamentals Part 9.mp4", false, false, false, 23, [], 1, ~U[2023-08-15 20:35:52Z], ~U[2026-03-01 11:49:12Z], ~U[2026-03-01 11:49:12Z], "#rustlang #tutorial \nOpposed to other languages, Rust fully embraces the concept of enums and elevates it to one of the core principles used in the language. In this video, we explore how enums are defined, how we can match on them and why they are so safe and powerful in Rust.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "ENUMS are at the HEART of Rust | Rust Fundamentals Part 9", "-nFDSDE_2Nw", 1033, false, "https://www.youtube.com/watch?v=-nFDSDE_2Nw", "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e081500_ENUMS are at the HEART of Rust | Rust Fundamentals Part 9.mp4", false, 23, ~U[2023-08-15 20:35:52Z]] 05:49:12.833 [debug] QUERY OK source="sources" db=0.3ms idle=38.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" = ?) [23] 05:49:12.833 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:49:12.834 [debug] QUERY OK source="media_items" db=0.5ms 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 [308071] 05:49:12.835 [debug] Current batch of media processed. Will check again in 1000ms 05:49:13.835 [debug] Current batch of media processed. Will check again in 1000ms 05:49:14.836 [debug] Current batch of media processed. Will check again in 1000ms 05:49:15.837 [debug] Current batch of media processed. Will check again in 1000ms 05:49:16.838 [debug] Current batch of media processed. Will check again in 1000ms 05:49:17.839 [debug] Current batch of media processed. Will check again in 1000ms 05:49:18.840 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Rust offers two powerful options for handling errors: panic! for non-recoverable errors, and Result for recoverable errors. In this video, we will go over the basics, especially on how to deal with Results. Additionally, we take a look at the \"thiserror\" crate.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "duration" => 1034, "filename" => "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e091200_Best built in ERROR HANDLING? | Rust Fundamentals Part 10.mp4", "id" => "bk1B6F0ErJk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=bk1B6F0ErJk", "playlist_index" => 10, "timestamp" => 1694547056, "title" => "Best built in ERROR HANDLING? | Rust Fundamentals Part 10", "upload_date" => "20230912"} 05:49:18.841 [debug] QUERY OK source="sources" db=0.4ms idle=326.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [23] 05:49:18.842 [debug] QUERY OK source="sources" db=0.4ms idle=327.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [23] 05:49:18.843 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=328.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-09-12 19:30:56Z], 23] 05:49:18.846 [debug] QUERY OK source="media_items" db=2.6ms idle=329.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" ["Rust offers two powerful options for handling errors: panic! for non-recoverable errors, and Result for recoverable errors. In this video, we will go over the basics, especially on how to deal with Results. Additionally, we take a look at the \"thiserror\" crate.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "Best built in ERROR HANDLING? | Rust Fundamentals Part 10", "46ad7a62-a61b-431b-a438-9166ee940185", "bk1B6F0ErJk", 1034, false, "https://www.youtube.com/watch?v=bk1B6F0ErJk", 10, "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e091200_Best built in ERROR HANDLING? | Rust Fundamentals Part 10.mp4", false, false, false, 23, [], 1, ~U[2023-09-12 19:30:56Z], ~U[2026-03-01 11:49:18Z], ~U[2026-03-01 11:49:18Z], "Rust offers two powerful options for handling errors: panic! for non-recoverable errors, and Result for recoverable errors. In this video, we will go over the basics, especially on how to deal with Results. Additionally, we take a look at the \"thiserror\" crate.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "Best built in ERROR HANDLING? | Rust Fundamentals Part 10", "bk1B6F0ErJk", 1034, false, "https://www.youtube.com/watch?v=bk1B6F0ErJk", "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e091200_Best built in ERROR HANDLING? | Rust Fundamentals Part 10.mp4", false, 23, ~U[2023-09-12 19:30:56Z]] 05:49:18.847 [debug] QUERY OK source="sources" db=0.4ms idle=41.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" = ?) [23] 05:49:18.848 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:49:18.849 [debug] QUERY OK source="media_items" db=0.4ms idle=6.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [308072] 05:49:18.849 [debug] Current batch of media processed. Will check again in 1000ms 05:49:19.849 [debug] Current batch of media processed. Will check again in 1000ms 05:49:20.850 [debug] Current batch of media processed. Will check again in 1000ms 05:49:21.851 [debug] Current batch of media processed. Will check again in 1000ms 05:49:22.396 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/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/8c/45/8c456f81844a3d7bdc957e3f7a560fbef2a10a832312f5ad53022d6c84d57957.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 05:49:22.397 [debug] Gracefully stopping file follower 05:49:22.398 [debug] QUERY OK source="sources" db=0.5ms queue=0.2ms idle=1882.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [23] 05:49:22.399 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1884.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [23] 05:49:22.400 [debug] QUERY OK source="media_items" db=0.2ms idle=1884.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-06-09 12:31:25Z], 23] 05:49:22.402 [debug] QUERY OK source="media_items" db=1.7ms idle=1590.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" ["Is Rust the next big deal in developing high-performance apps? I give you an introduction to what Rust is as well as all the advantages it has over languages like C and C++.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "Learn RUST to FUTURE PROOF your developer career | Rust Fundamentals Part 1", "dd56c821-1efb-47d1-8367-1c82d8c5cd00", "NDMr9W0hbaI", 606, false, "https://www.youtube.com/watch?v=NDMr9W0hbaI", 1, "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e060900_Learn RUST to FUTURE PROOF your developer career | Rust Fundamentals Part 1.mp4", false, false, false, 23, [], 1, ~U[2023-06-09 12:31:25Z], ~U[2026-03-01 11:49:22Z], ~U[2026-03-01 11:49:22Z], "Is Rust the next big deal in developing high-performance apps? I give you an introduction to what Rust is as well as all the advantages it has over languages like C and C++.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "Learn RUST to FUTURE PROOF your developer career | Rust Fundamentals Part 1", "NDMr9W0hbaI", 606, false, "https://www.youtube.com/watch?v=NDMr9W0hbaI", "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e060900_Learn RUST to FUTURE PROOF your developer career | Rust Fundamentals Part 1.mp4", false, 23, ~U[2023-06-09 12:31:25Z]] 05:49:22.404 [debug] QUERY OK source="sources" db=1.1ms idle=591.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [23] 05:49:22.404 [debug] QUERY OK source="media_items" db=0.3ms idle=5.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-06-10 15:06:42Z], 23] 05:49:22.407 [debug] QUERY OK source="media_items" db=1.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" ["We install Rust from the command line and run our first \"Hello, world!\" program.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "Your FIRST STEPS as a Rustacean | Rust Fundamentals Part 2", "9a6834fe-625f-4702-b877-c068d6aca7c7", "8SGqDJs9Qlo", 514, false, "https://www.youtube.com/watch?v=8SGqDJs9Qlo", 2, "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e061000_Your FIRST STEPS as a Rustacean | Rust Fundamentals Part 2.mp4", false, false, false, 23, [], 1, ~U[2023-06-10 15:06:42Z], ~U[2026-03-01 11:49:22Z], ~U[2026-03-01 11:49:22Z], "We install Rust from the command line and run our first \"Hello, world!\" program.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "Your FIRST STEPS as a Rustacean | Rust Fundamentals Part 2", "8SGqDJs9Qlo", 514, false, "https://www.youtube.com/watch?v=8SGqDJs9Qlo", "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e061000_Your FIRST STEPS as a Rustacean | Rust Fundamentals Part 2.mp4", false, 23, ~U[2023-06-10 15:06:42Z]] 05:49:22.407 [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" = ?) [23] 05:49:22.408 [debug] QUERY OK source="media_items" db=0.3ms idle=5.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-06-20 06:28:25Z], 23] 05:49:22.410 [debug] QUERY OK source="media_items" db=1.5ms 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" ["Today we dive into our first real programming experience with Rust and find out, how variables are defined, how to make them mutable, and what the basic built-in datatypes are.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "Rust's MUTABILITY system is a Game Changer | Rust Fundamentals Part 3", "63e7212c-a774-4454-b2dc-f015e61c62f9", "SlRh7O7_1m0", 843, false, "https://www.youtube.com/watch?v=SlRh7O7_1m0", 3, "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e062000_Rust's MUTABILITY system is a Game Changer | Rust Fundamentals Part 3.mp4", false, false, false, 23, [], 1, ~U[2023-06-20 06:28:25Z], ~U[2026-03-01 11:49:22Z], ~U[2026-03-01 11:49:22Z], "Today we dive into our first real programming experience with Rust and find out, how variables are defined, how to make them mutable, and what the basic built-in datatypes are.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "Rust's MUTABILITY system is a Game Changer | Rust Fundamentals Part 3", "SlRh7O7_1m0", 843, false, "https://www.youtube.com/watch?v=SlRh7O7_1m0", "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e062000_Rust's MUTABILITY system is a Game Changer | Rust Fundamentals Part 3.mp4", false, 23, ~U[2023-06-20 06:28:25Z]] 05:49:22.411 [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" = ?) [23] 05:49:22.412 [debug] QUERY OK source="media_items" db=0.3ms idle=4.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-06-25 20:14:13Z], 23] 05:49:22.414 [debug] QUERY OK source="media_items" db=1.5ms 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" ["Let's get into structuring and reusing code in Rust with functions. This tutorial covers the syntax of creating and calling functions. We will go into details regarding mutability and ownership of the parameters in a future video.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "FUNCTIONS as the Building Block for MODULARITY | Rust Fundamentals Part 4", "82155961-7211-4cb1-846a-b80b63ccc3bf", "xfr_B9d33FE", 311, false, "https://www.youtube.com/watch?v=xfr_B9d33FE", 4, "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e062500_FUNCTIONS as the Building Block for MODULARITY | Rust Fundamentals Part 4.mp4", false, false, false, 23, [], 1, ~U[2023-06-25 20:14:13Z], ~U[2026-03-01 11:49:22Z], ~U[2026-03-01 11:49:22Z], "Let's get into structuring and reusing code in Rust with functions. This tutorial covers the syntax of creating and calling functions. We will go into details regarding mutability and ownership of the parameters in a future video.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "FUNCTIONS as the Building Block for MODULARITY | Rust Fundamentals Part 4", "xfr_B9d33FE", 311, false, "https://www.youtube.com/watch?v=xfr_B9d33FE", "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e062500_FUNCTIONS as the Building Block for MODULARITY | Rust Fundamentals Part 4.mp4", false, 23, ~U[2023-06-25 20:14:13Z]] 05:49:22.414 [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" = ?) [23] 05:49:22.415 [debug] QUERY OK source="media_items" db=0.3ms idle=4.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-07-08 20:24:48Z], 23] 05:49:22.420 [debug] QUERY OK source="media_items" db=4.3ms 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" ["Variables in your code are stored either on the stack or the heap. Especially the lifetime management of heap memory is a complex topic and over the years, programming languages offered various solutions to this problem.\n\nRust deals with this issue via ownership and borrowing. The idea behind ownership is that every variable has exactly one owner (a pointer on the stack) at every point in time. Once this owner goes out of scope, the allocated memory on the heap is freed and the resources can no longer be used. This seemingly straight forward approach solves the problem of memory leaks and gets rid of a garbage collector, as in so many other languages, at the same time.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "Do you know who OWNS your DATA? | Rust Fundamentals Part 5", "647cec43-34d7-4cae-b310-e72f9273304b", "lxNnnPPR4aA", 1259, false, "https://www.youtube.com/watch?v=lxNnnPPR4aA", 5, "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e070800_Do you know who OWNS your DATA? | Rust Fundamentals Part 5.mp4", false, false, false, 23, [], 1, ~U[2023-07-08 20:24:48Z], ~U[2026-03-01 11:49:22Z], ~U[2026-03-01 11:49:22Z], "Variables in your code are stored either on the stack or the heap. Especially the lifetime management of heap memory is a complex topic and over the years, programming languages offered various solutions to this problem.\n\nRust deals with this issue via ownership and borrowing. The idea behind ownership is that every variable has exactly one owner (a pointer on the stack) at every point in time. Once this owner goes out of scope, the allocated memory on the heap is freed and the resources can no longer be used. This seemingly straight forward approach solves the problem of memory leaks and gets rid of a garbage collector, as in so many other languages, at the same time.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "Do you know who OWNS your DATA? | Rust Fundamentals Part 5", "lxNnnPPR4aA", 1259, false, "https://www.youtube.com/watch?v=lxNnnPPR4aA", "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e070800_Do you know who OWNS your DATA? | Rust Fundamentals Part 5.mp4", false, 23, ~U[2023-07-08 20:24:48Z]] 05:49:22.421 [debug] QUERY OK source="sources" db=0.3ms idle=8.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [23] 05:49:22.422 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=7.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-07-17 22:12:28Z], 23] 05:49:22.424 [debug] QUERY OK source="media_items" db=1.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" ["One of the most distinguishing features that Rust has to offer is its way to handle memory management: via ownership and borrowing. In this video, I explain how ownership works, why we need a borrow checker and what kind of safety it gives us compared to other languages.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "Learn these 3 RULES to master Borrowing! | Rust Fundamentals Part 6", "ad4b3b76-ae11-4c9b-ab49-65c2cd6424fa", "8se_9NtF4wQ", 1266, false, "https://www.youtube.com/watch?v=8se_9NtF4wQ", 6, "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e071700_Learn these 3 RULES to master Borrowing! | Rust Fundamentals Part 6.mp4", false, false, false, 23, [], 1, ~U[2023-07-17 22:12:28Z], ~U[2026-03-01 11:49:22Z], ~U[2026-03-01 11:49:22Z], "One of the most distinguishing features that Rust has to offer is its way to handle memory management: via ownership and borrowing. In this video, I explain how ownership works, why we need a borrow checker and what kind of safety it gives us compared to other languages.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "Learn these 3 RULES to master Borrowing! | Rust Fundamentals Part 6", "8se_9NtF4wQ", 1266, false, "https://www.youtube.com/watch?v=8se_9NtF4wQ", "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e071700_Learn these 3 RULES to master Borrowing! | Rust Fundamentals Part 6.mp4", false, 23, ~U[2023-07-17 22:12:28Z]] 05:49:22.425 [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" = ?) [23] 05:49:22.425 [debug] QUERY OK source="media_items" db=0.4ms idle=4.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-07-31 20:48:53Z], 23] 05:49:22.428 [debug] QUERY OK source="media_items" db=1.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" ["Arrays and vectors are very alike, but their difference in terms of performance is staggering. Although allocation of memory on the stack makes arrays blazingly fast, sometimes you can not live without the dynamic nature of vectors.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding\n\n00:00 Intro\n00:28 Arrays\n02:40 Vectors\n04:08 Arrays and Vectors as Function Parameters\n06:25 Slices\n10:36 Performance Implications\n13:08 Outro", "Why Vectors slow down your Code | Rust Fundamentals Part 7", "b19fcb2c-0f8f-4f1b-80ee-9d4ffc87c618", "HLWeD0Q-rfs", 819, false, "https://www.youtube.com/watch?v=HLWeD0Q-rfs", 7, "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e073100_Why Vectors slow down your Code | Rust Fundamentals Part 7.mp4", false, false, false, 23, [], 1, ~U[2023-07-31 20:48:53Z], ~U[2026-03-01 11:49:22Z], ~U[2026-03-01 11:49:22Z], "Arrays and vectors are very alike, but their difference in terms of performance is staggering. Although allocation of memory on the stack makes arrays blazingly fast, sometimes you can not live without the dynamic nature of vectors.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding\n\n00:00 Intro\n00:28 Arrays\n02:40 Vectors\n04:08 Arrays and Vectors as Function Parameters\n06:25 Slices\n10:36 Performance Implications\n13:08 Outro", "Why Vectors slow down your Code | Rust Fundamentals Part 7", "HLWeD0Q-rfs", 819, false, "https://www.youtube.com/watch?v=HLWeD0Q-rfs", "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e073100_Why Vectors slow down your Code | Rust Fundamentals Part 7.mp4", false, 23, ~U[2023-07-31 20:48:53Z]] 05:49:22.428 [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" = ?) [23] 05:49:22.429 [debug] QUERY OK source="media_items" db=0.3ms idle=4.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-08-07 04:00:36Z], 23] 05:49:22.431 [debug] QUERY OK source="media_items" db=1.6ms 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" ["Loops are ubiquitous in programming, and that's no different in Rust. We go through the three ways to loop in Rust, then discuss performance implications and common pitfalls.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding\n\n00:00 Intro\n00:40 loop\n01:56 while\n03:21 for\n05:00 for with step-size\n05:46 sum()\n06:31 Iterating over an array\n07:31 Performance \n10:16 Strings & Ownership in loops\n14:24 Outro", "Avoid common PITFALLS with LOOPS | Rust Fundamentals Part 8", "4181b86c-366b-492c-9a03-94ea8c6086f4", "y_jzzM1VyD8", 922, false, "https://www.youtube.com/watch?v=y_jzzM1VyD8", 8, "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e080700_Avoid common PITFALLS with LOOPS | Rust Fundamentals Part 8.mp4", false, false, false, 23, [], 1, ~U[2023-08-07 04:00:36Z], ~U[2026-03-01 11:49:22Z], ~U[2026-03-01 11:49:22Z], "Loops are ubiquitous in programming, and that's no different in Rust. We go through the three ways to loop in Rust, then discuss performance implications and common pitfalls.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding\n\n00:00 Intro\n00:40 loop\n01:56 while\n03:21 for\n05:00 for with step-size\n05:46 sum()\n06:31 Iterating over an array\n07:31 Performance \n10:16 Strings & Ownership in loops\n14:24 Outro", "Avoid common PITFALLS with LOOPS | Rust Fundamentals Part 8", "y_jzzM1VyD8", 922, false, "https://www.youtube.com/watch?v=y_jzzM1VyD8", "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e080700_Avoid common PITFALLS with LOOPS | Rust Fundamentals Part 8.mp4", false, 23, ~U[2023-08-07 04:00:36Z]] 05:49:22.432 [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" = ?) [23] 05:49:22.433 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=4.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-08-15 20:35:52Z], 23] 05:49:22.435 [debug] QUERY OK source="media_items" db=1.5ms idle=4.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" ["#rustlang #tutorial \nOpposed to other languages, Rust fully embraces the concept of enums and elevates it to one of the core principles used in the language. In this video, we explore how enums are defined, how we can match on them and why they are so safe and powerful in Rust.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "ENUMS are at the HEART of Rust | Rust Fundamentals Part 9", "0e9c49d4-ec34-4af2-98fb-b717a2087e9e", "-nFDSDE_2Nw", 1033, false, "https://www.youtube.com/watch?v=-nFDSDE_2Nw", 9, "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e081500_ENUMS are at the HEART of Rust | Rust Fundamentals Part 9.mp4", false, false, false, 23, [], 1, ~U[2023-08-15 20:35:52Z], ~U[2026-03-01 11:49:22Z], ~U[2026-03-01 11:49:22Z], "#rustlang #tutorial \nOpposed to other languages, Rust fully embraces the concept of enums and elevates it to one of the core principles used in the language. In this video, we explore how enums are defined, how we can match on them and why they are so safe and powerful in Rust.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "ENUMS are at the HEART of Rust | Rust Fundamentals Part 9", "-nFDSDE_2Nw", 1033, false, "https://www.youtube.com/watch?v=-nFDSDE_2Nw", "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e081500_ENUMS are at the HEART of Rust | Rust Fundamentals Part 9.mp4", false, 23, ~U[2023-08-15 20:35:52Z]] 05:49:22.436 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [23] 05:49:22.436 [debug] QUERY OK source="media_items" db=0.3ms idle=4.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-09-12 19:30:56Z], 23] 05:49:22.439 [debug] QUERY OK source="media_items" db=1.4ms idle=4.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" ["Rust offers two powerful options for handling errors: panic! for non-recoverable errors, and Result for recoverable errors. In this video, we will go over the basics, especially on how to deal with Results. Additionally, we take a look at the \"thiserror\" crate.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "Best built in ERROR HANDLING? | Rust Fundamentals Part 10", "f740e057-cf24-4e01-881b-f62d19a72da7", "bk1B6F0ErJk", 1034, false, "https://www.youtube.com/watch?v=bk1B6F0ErJk", 10, "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e091200_Best built in ERROR HANDLING? | Rust Fundamentals Part 10.mp4", false, false, false, 23, [], 1, ~U[2023-09-12 19:30:56Z], ~U[2026-03-01 11:49:22Z], ~U[2026-03-01 11:49:22Z], "Rust offers two powerful options for handling errors: panic! for non-recoverable errors, and Result for recoverable errors. In this video, we will go over the basics, especially on how to deal with Results. Additionally, we take a look at the \"thiserror\" crate.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "Best built in ERROR HANDLING? | Rust Fundamentals Part 10", "bk1B6F0ErJk", 1034, false, "https://www.youtube.com/watch?v=bk1B6F0ErJk", "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e091200_Best built in ERROR HANDLING? | Rust Fundamentals Part 10.mp4", false, 23, ~U[2023-09-12 19:30:56Z]] 05:49:22.439 [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" = ?) [23] 05:49:22.440 [debug] QUERY OK source="media_items" db=0.4ms idle=4.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-10-01 14:08:59Z], 23] 05:49:22.443 [debug] QUERY OK source="media_items" db=2.3ms 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" ["#tutorial #cleancode \nIn this last episode of the Rust Fundamentals, we take a look at structs for grouping data and functionality. This enables us to develop in a more modular way and encapsulate data.\n\nBuild videos and an advanced tutorial series will follow on this channel.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "Grouping Data and Functionality with Structs | Rust Fundamentals Part 11 #rustlang #oop", "d317c520-76e4-4739-b2a9-be17b4993872", "nfgrieUgn8s", 1171, false, "https://www.youtube.com/watch?v=nfgrieUgn8s", 11, "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e100100_Grouping Data and Functionality with Structs | Rust Fundamentals Part 11 #rustlang #oop.mp4", false, false, false, 23, [], 1, ~U[2023-10-01 14:08:59Z], ~U[2026-03-01 11:49:22Z], ~U[2026-03-01 11:49:22Z], "#tutorial #cleancode \nIn this last episode of the Rust Fundamentals, we take a look at structs for grouping data and functionality. This enables us to develop in a more modular way and encapsulate data.\n\nBuild videos and an advanced tutorial series will follow on this channel.\n\nFind me elsewhere:\n🐘 Mastodon: https://mastodon.social/@GreenTeaCoding", "Grouping Data and Functionality with Structs | Rust Fundamentals Part 11 #rustlang #oop", "nfgrieUgn8s", 1171, false, "https://www.youtube.com/watch?v=nfgrieUgn8s", "/downloads/chris/tubes/Rust Fundementals_[PLFdNoRgzggbo6BqJQ6tqk_wvXeI5yfbGA]/Season 2023/s2023e100100_Grouping Data and Functionality with Structs | Rust Fundamentals Part 11 #rustlang #oop.mp4", false, 23, ~U[2023-10-01 14:08:59Z]] 05:49:22.444 [debug] QUERY OK source="sources" db=0.3ms idle=6.8ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-01 11:49:22Z], ~U[2026-03-01 11:49:22Z], 23] 05:49:22.445 [debug] QUERY OK source="media_items" db=0.7ms idle=5.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "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")))) [23] 05:49:22.446 [debug] QUERY OK source="media_items" db=0.5ms idle=5.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")))) [23] 05:49:22.446 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=5.8ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [23] 05:49:22.449 [debug] QUERY OK source="tasks" db=0.7ms idle=3.7ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189143, 23, ~U[2026-03-01 11:49:22Z], ~U[2026-03-01 11:49:22Z]] 05:49:22.450 [info] {"args":{"id":23},"id":187436,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":43721203,"event":"job:stop","queue_time":256064,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 05:49:41.473 [info] {"source":"oban","duration":12471,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:50:00.119 [info] {"source":"oban","duration":310,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:50:11.487 [info] {"source":"oban","duration":12680,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:50:21.683 [info] GET /sources/30 05:50:21.683 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "30"} Pipelines: [:browser] 05:50:21.684 [debug] QUERY OK source="sources" db=0.2ms idle=1169.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] 05:50:21.685 [debug] QUERY OK source="media_profiles" db=0.2ms idle=757.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] 05:50:22.127 [debug] QUERY OK source="tasks" db=441.6ms idle=170.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 (?,?,?,?)) [30, "executing", "available", "scheduled", "retryable"] 05:50:22.127 [debug] QUERY OK source="oban_jobs" db=0.3ms queue=0.1ms idle=612.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" = ?) [189128] 05:50:22.128 [debug] QUERY OK source="settings" db=0.1ms idle=443.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:50:22.128 [debug] QUERY OK source="settings" db=0.1ms idle=443.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:50:22.129 [debug] QUERY OK source="settings" db=0.1ms idle=199.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:50:22.131 [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" = ?) [30] 05:50:22.139 [debug] QUERY OK source="media_items" db=7.9ms idle=3.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [30] 05:50:22.147 [debug] QUERY OK source="media_items" db=7.9ms idle=11.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [30, 10, 0] 05:50:22.148 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [30] 05:50:22.149 [debug] QUERY OK source="media_items" db=0.6ms idle=19.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [30] 05:50:22.157 [debug] QUERY OK source="media_items" db=7.1ms idle=18.7ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [30, 10, 0] 05:50:22.158 [debug] QUERY OK source="sources" db=0.2ms idle=18.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:50:22.161 [debug] QUERY OK source="media_items" db=2.1ms idle=11.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [30] 05:50:22.170 [debug] QUERY OK source="media_items" db=8.6ms idle=12.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 ? [30, 10, 0] 05:50:22.172 [info] Sent 200 in 488ms 05:50:41.502 [info] {"source":"oban","duration":15412,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:50:56.542 [info] GET /sources/43 05:50:56.543 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "43"} Pipelines: [:browser] 05:50:56.543 [debug] QUERY OK source="sources" db=0.2ms idle=1028.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:50:56.544 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1028.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:50:56.762 [debug] QUERY OK source="tasks" db=218.1ms idle=1029.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [43, "executing", "available", "scheduled", "retryable"] 05:50:56.763 [debug] QUERY OK source="oban_jobs" db=0.3ms idle=769.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" = ?) [189115] 05:50:56.763 [debug] QUERY OK source="settings" db=0.1ms idle=248.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:50:56.764 [debug] QUERY OK source="settings" db=0.1ms idle=220.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:50:56.764 [debug] QUERY OK source="settings" db=0.1ms idle=220.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:50:56.766 [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" = ?) [43] 05:50:56.774 [debug] QUERY OK source="media_items" db=6.6ms idle=4.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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] 05:50:56.781 [debug] QUERY OK source="media_items" db=6.8ms idle=10.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [43, 10, 0] 05:50:56.783 [debug] QUERY OK source="sources" db=0.2ms idle=18.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:50:56.784 [debug] QUERY OK source="media_items" db=0.5ms idle=18.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [43] 05:50:56.788 [debug] QUERY OK source="media_items" db=3.9ms idle=17.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [43, 10, 0] 05:50:56.789 [debug] QUERY OK source="sources" db=0.3ms idle=15.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:50:56.792 [debug] QUERY OK source="media_items" db=1.9ms idle=8.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"))))) [43] 05:50:56.799 [debug] QUERY OK source="media_items" db=7.3ms idle=9.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [43, 10, 0] 05:50:56.801 [info] Sent 200 in 258ms 05:51:00.120 [info] {"source":"oban","duration":275,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:51:11.516 [info] {"source":"oban","duration":13036,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:51:13.033 [info] {"args":{"id":51},"id":189129,"meta":{},"system_time":1772365873033787007,"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"]} 05:51:13.035 [debug] QUERY OK source="sources" db=1.5ms idle=519.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [51] 05:51:13.037 [debug] QUERY OK source="settings" db=1.5ms idle=520.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:51:13.039 [debug] QUERY OK source="media_profiles" db=2.2ms idle=522.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] 05:51:13.042 [debug] QUERY OK source="settings" db=1.9ms idle=15.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:51:13.042 [debug] Fetching recent media IDs from YouTube RSS feed for source: UCUMwY9iS8oMyWDYIe6_RmoA 05:51:13.357 [debug] Media ids fetched from RSS: ["WxN9VzwoGGw", "9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI"] 05:51:13.359 [debug] QUERY OK source="media_items" db=0.9ms idle=324.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 (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [51, "WxN9VzwoGGw", "9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI"] 05:51:13.360 [debug] QUERY OK source="media_items" db=0.8ms idle=324.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")))) [51] 05:51:13.362 [debug] QUERY OK source="tasks" db=0.4ms idle=320.4ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189144, 51, ~U[2026-03-01 11:51:13Z], ~U[2026-03-01 11:51:13Z]] 05:51:13.363 [info] {"args":{"id":51},"id":189129,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":329204,"event":"job:stop","queue_time":1000645,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 05:51:38.076 [info] {"args":{"id":46},"id":189055,"meta":{},"system_time":1772365898076738526,"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"]} 05:51:38.077 [debug] QUERY OK source="sources" db=0.2ms idle=1562.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] 05:51:38.078 [debug] QUERY OK source="settings" db=0.3ms idle=1563.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:51:38.079 [debug] QUERY OK source="media_items" db=0.8ms idle=1011.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] 05:51:38.079 [debug] QUERY OK source="media_items" db=0.2ms idle=9.0ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [46] 05:51:38.080 [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] 05:51:38.080 [debug] QUERY OK source="settings" db=0.1ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:51:38.081 [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 [] 05:51:38.083 [debug] QUERY OK source="media_items" db=1.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."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [46] 05:51:38.085 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 05:51:38.085 [debug] Current batch of media processed. Will check again in 1000ms 05:51:38.085 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:51:38.086 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:51:38.086 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:51:38.086 [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/f2/6d/f26d6811523e3c93854dfbb8f97051b16ec626d80b6c049275367d2e8e5cfe3b.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/4c/f0/4cf0db50b5e9fe847e1ff76699882568f1a7a0b2093d198e1b5b7c18edfb8dfc.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:51:39.086 [debug] Current batch of media processed. Will check again in 1000ms 05:51:40.087 [debug] Current batch of media processed. Will check again in 1000ms 05:51:41.088 [debug] Current batch of media processed. Will check again in 1000ms 05:51:41.530 [info] {"source":"oban","duration":13292,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:51:42.089 [debug] Current batch of media processed. Will check again in 1000ms 05:51:43.090 [debug] Current batch of media processed. Will check again in 1000ms 05:51:44.091 [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"} 05:51:44.092 [debug] QUERY OK source="sources" db=0.2ms idle=577.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [46] 05:51:44.093 [debug] QUERY OK source="sources" db=0.2ms idle=578.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:51:44.093 [debug] QUERY OK source="media_items" db=0.4ms idle=578.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] 05:51:44.095 [debug] QUERY OK source="media_items" db=1.1ms idle=579.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", "d99b7b23-6ed2-4d27-b5e3-1dca38121002", "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-03-01 11:51:44Z], ~U[2026-03-01 11:51:44Z], "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]] 05:51:44.095 [debug] QUERY OK source="sources" db=0.3ms idle=14.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:51:44.096 [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] 05:51:44.097 [debug] QUERY OK source="media_items" db=0.3ms 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 [2377781] 05:51:44.097 [debug] Current batch of media processed. Will check again in 1000ms 05:51:45.098 [debug] Current batch of media processed. Will check again in 1000ms 05:51:46.099 [debug] Current batch of media processed. Will check again in 1000ms 05:51:47.101 [debug] Current batch of media processed. Will check again in 1000ms 05:51:48.101 [debug] Current batch of media processed. Will check again in 1000ms 05:51:49.102 [debug] Current batch of media processed. Will check again in 1000ms 05:51:50.103 [debug] Current batch of media processed. Will check again in 1000ms 05:51:51.104 [debug] Current batch of media processed. Will check again in 1000ms 05:51:52.105 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Jade Wine video on emptiness - \nhttps://www.youtube.com/watch?v=CDS9DH385p8\n\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "duration" => 1591, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022700_6 senses which control our lives.mp4", "id" => "BFKnEakU_gs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=BFKnEakU_gs", "playlist_index" => 2, "timestamp" => 1772221512, "title" => "6 senses which control our lives", "upload_date" => "20260227"} 05:51:52.106 [debug] QUERY OK source="sources" db=0.2ms idle=591.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:51:52.106 [debug] QUERY OK source="sources" db=0.2ms idle=592.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 05:51:52.107 [debug] QUERY OK source="media_items" db=0.6ms idle=592.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 19:45:12Z], 46] 05:51:52.109 [debug] QUERY OK source="media_items" db=0.9ms idle=593.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" ["Jade Wine video on emptiness - \nhttps://www.youtube.com/watch?v=CDS9DH385p8\n\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "6 senses which control our lives", "155270d7-974c-4e2d-9781-ab99f10b3c09", "BFKnEakU_gs", 1591, false, "https://www.youtube.com/watch?v=BFKnEakU_gs", 2, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022700_6 senses which control our lives.mp4", false, false, false, 46, [], 98, ~U[2026-02-27 19:45:12Z], ~U[2026-03-01 11:51:52Z], ~U[2026-03-01 11:51:52Z], "Jade Wine video on emptiness - \nhttps://www.youtube.com/watch?v=CDS9DH385p8\n\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "6 senses which control our lives", "BFKnEakU_gs", 1591, false, "https://www.youtube.com/watch?v=BFKnEakU_gs", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022700_6 senses which control our lives.mp4", false, 46, ~U[2026-02-27 19:45:12Z]] 05:51:52.109 [debug] QUERY OK source="sources" db=0.2ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 05:51:52.110 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:51:52.110 [debug] QUERY OK source="media_items" db=0.3ms 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 [2369505] 05:51:52.110 [debug] Current batch of media processed. Will check again in 1000ms 05:51:53.111 [debug] Current batch of media processed. Will check again in 1000ms 05:51:54.112 [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" => 3, "timestamp" => 1772097703, "title" => "HOST FREE from home (no tunnel, no VPS, no Static IP)", "upload_date" => "20260226"} 05:51:54.113 [debug] QUERY OK source="sources" db=0.2ms 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" IN (?)) [46] 05:51:54.113 [debug] QUERY OK source="sources" db=0.1ms idle=599.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:51:54.114 [debug] QUERY OK source="media_items" db=0.6ms idle=599.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-26 09:21:43Z], 46] 05:51:54.116 [debug] QUERY OK source="media_items" db=1.0ms idle=600.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", "HOST FREE from home (no tunnel, no VPS, no Static IP)", "8d0db1ff-46aa-43df-b1b2-370856c31a0a", "7y60xBovdnI", 507, false, "https://www.youtube.com/watch?v=7y60xBovdnI", 3, "/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-03-01 11:51:54Z], ~U[2026-03-01 11:51:54Z], "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]] 05:51:54.117 [debug] QUERY OK source="sources" db=0.3ms idle=14.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] 05:51:54.117 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:51:54.118 [debug] QUERY OK source="media_items" db=0.3ms 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 [2358266] 05:51:54.118 [debug] Current batch of media processed. Will check again in 1000ms 05:51:55.119 [debug] Current batch of media processed. Will check again in 1000ms 05:51:56.120 [debug] Current batch of media processed. Will check again in 1000ms 05:51:57.121 [debug] Current batch of media processed. Will check again in 1000ms 05:51:58.122 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "support - https://paypal.me/bugswriter\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "duration" => 837, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022100_Resisting Temptation....mp4", "id" => "qWAc5SzU6-c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=qWAc5SzU6-c", "playlist_index" => 4, "timestamp" => 1771711692, "title" => "Resisting Temptation...", "upload_date" => "20260221"} 05:51:58.123 [debug] QUERY OK source="sources" db=0.3ms idle=608.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:51:58.123 [debug] QUERY OK source="sources" db=0.3ms idle=608.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:51:58.124 [debug] QUERY OK source="media_items" db=0.8ms idle=609.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-21 22:08:12Z], 46] 05:51:58.126 [debug] QUERY OK source="media_items" db=1.0ms idle=610.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" ["support - https://paypal.me/bugswriter\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Resisting Temptation...", "cf706852-e423-4a9d-939f-56f2093a053d", "qWAc5SzU6-c", 837, false, "https://www.youtube.com/watch?v=qWAc5SzU6-c", 4, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022100_Resisting Temptation....mp4", false, false, false, 46, [], 98, ~U[2026-02-21 22:08:12Z], ~U[2026-03-01 11:51:58Z], ~U[2026-03-01 11:51:58Z], "support - https://paypal.me/bugswriter\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Resisting Temptation...", "qWAc5SzU6-c", 837, false, "https://www.youtube.com/watch?v=qWAc5SzU6-c", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022100_Resisting Temptation....mp4", false, 46, ~U[2026-02-21 22:08:12Z]] 05:51:58.126 [debug] QUERY OK source="sources" db=0.3ms idle=17.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:51:58.127 [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] 05:51:58.127 [debug] QUERY OK source="media_items" db=0.2ms idle=3.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [2323363] 05:51:58.128 [debug] Current batch of media processed. Will check again in 1000ms 05:51:59.128 [debug] Current batch of media processed. Will check again in 1000ms 05:52:00.121 [info] {"source":"oban","duration":282,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:52:00.129 [debug] Current batch of media processed. Will check again in 1000ms 05:52:01.130 [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" => 5, "timestamp" => 1771588269, "title" => "MacOS *float vs Hyprland *tile", "upload_date" => "20260220"} 05:52:01.131 [debug] QUERY OK source="sources" db=0.4ms idle=1616.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:52:01.131 [debug] QUERY OK source="sources" db=0.2ms idle=1616.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] 05:52:01.133 [debug] QUERY OK source="media_items" db=0.8ms idle=1018.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 11:51:09Z], 46] 05:52:01.134 [debug] QUERY OK source="media_items" db=0.8ms idle=1011.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", "MacOS *float vs Hyprland *tile", "ffbce746-22b2-488f-a94f-95273b4359e1", "LrOuqMzKdAE", 684, false, "https://www.youtube.com/watch?v=LrOuqMzKdAE", 5, "/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-03-01 11:52:01Z], ~U[2026-03-01 11:52:01Z], "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]] 05:52:01.134 [debug] QUERY OK source="sources" db=0.3ms idle=18.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 05:52:01.135 [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] 05:52:01.136 [debug] QUERY OK source="media_items" db=0.3ms 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 [2312061] 05:52:01.136 [debug] Current batch of media processed. Will check again in 1000ms 05:52:02.136 [debug] Current batch of media processed. Will check again in 1000ms 05:52:03.137 [debug] Current batch of media processed. Will check again in 1000ms 05:52:04.139 [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" => 6, "timestamp" => 1771110716, "title" => "freedom is a meme just like your life", "upload_date" => "20260214"} 05:52:04.139 [debug] QUERY OK source="sources" db=0.4ms idle=1624.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:52:04.140 [debug] QUERY OK source="sources" db=0.2ms idle=1625.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:52:04.141 [debug] QUERY OK source="media_items" db=0.8ms idle=1625.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 23:11:56Z], 46] 05:52:04.143 [debug] QUERY OK source="media_items" db=1.1ms idle=1022.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", "752ac25f-c28f-4dfb-8c8a-3a6582d2a79b", "kD1VhTacIc8", 1711, false, "https://www.youtube.com/watch?v=kD1VhTacIc8", 6, "/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-03-01 11:52:04Z], ~U[2026-03-01 11:52:04Z], "- 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]] 05:52:04.143 [debug] QUERY OK source="sources" db=0.4ms idle=21.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:52:04.144 [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] 05:52:04.145 [debug] QUERY OK source="media_items" db=0.3ms 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 [2269214] 05:52:04.145 [debug] Current batch of media processed. Will check again in 1000ms 05:52:05.146 [debug] Current batch of media processed. Will check again in 1000ms 05:52:06.147 [debug] Current batch of media processed. Will check again in 1000ms 05:52:07.148 [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" => 7, "timestamp" => 1770629468, "title" => "Tibetan Anti-philosophy can end your DOOM Scrolling", "upload_date" => "20260209"} 05:52:07.149 [debug] QUERY OK source="sources" db=0.4ms idle=1634.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] 05:52:07.150 [debug] QUERY OK source="sources" db=0.4ms idle=1635.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] 05:52:07.151 [debug] QUERY OK source="media_items" db=0.8ms idle=1636.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] 05:52:07.154 [debug] QUERY OK source="media_items" db=1.8ms idle=1026.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" ["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", "f085ea54-727a-4d2d-ae0e-b41e6355ff9e", "f4vblLRAYSg", 748, false, "https://www.youtube.com/watch?v=f4vblLRAYSg", 7, "/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-03-01 11:52:07Z], ~U[2026-03-01 11:52:07Z], "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]] 05:52:07.154 [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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 05:52:07.155 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:52:07.156 [debug] QUERY OK source="media_items" db=0.3ms 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 [2225383] 05:52:07.156 [debug] Current batch of media processed. Will check again in 1000ms 05:52:08.157 [debug] Current batch of media processed. Will check again in 1000ms 05:52:09.158 [debug] Current batch of media processed. Will check again in 1000ms 05:52:10.159 [debug] Current batch of media processed. Will check again in 1000ms 05:52:11.160 [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" => 8, "timestamp" => 1769459768, "title" => "Freedom vs Compliance", "upload_date" => "20260126"} 05:52:11.161 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=646.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [46] 05:52:11.162 [debug] QUERY OK source="sources" db=0.2ms idle=647.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:52:11.163 [debug] QUERY OK source="media_items" db=0.7ms idle=647.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] 05:52:11.164 [debug] QUERY OK source="media_items" db=1.2ms idle=648.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", "Freedom vs Compliance", "03f3f8ac-3c36-4c2e-8157-c46219d4bd75", "f5qgJ9xThYs", 829, false, "https://www.youtube.com/watch?v=f5qgJ9xThYs", 8, "/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-03-01 11:52:11Z], ~U[2026-03-01 11:52:11Z], "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]] 05:52:11.165 [debug] QUERY OK source="sources" db=0.3ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 05:52:11.165 [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] 05:52:11.166 [debug] QUERY OK source="media_items" db=0.3ms 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 [2117716] 05:52:11.166 [debug] Current batch of media processed. Will check again in 1000ms 05:52:11.547 [info] {"source":"oban","duration":16193,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:52:12.167 [debug] Current batch of media processed. Will check again in 1000ms 05:52:13.168 [debug] Current batch of media processed. Will check again in 1000ms 05:52:14.169 [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" => 9, "timestamp" => 1768173959, "title" => "Why developers fail earning $$$ (independently) ?", "upload_date" => "20260111"} 05:52:14.170 [debug] QUERY OK source="sources" db=0.3ms idle=1655.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:52:14.171 [debug] QUERY OK source="sources" db=0.2ms idle=1656.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:52:14.172 [debug] QUERY OK source="media_items" db=0.7ms idle=1031.6ms 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] 05:52:14.173 [debug] QUERY OK source="media_items" db=0.9ms idle=658.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", "Why developers fail earning $$$ (independently) ?", "9bb4e325-9a22-4dc7-bdbe-875aa7c7a11a", "giQ_7l5p2Kg", 727, false, "https://www.youtube.com/watch?v=giQ_7l5p2Kg", 9, "/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-03-01 11:52:14Z], ~U[2026-03-01 11:52:14Z], "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]] 05:52:14.174 [debug] QUERY OK source="sources" db=0.3ms idle=32.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:52:14.174 [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] 05:52:14.175 [debug] QUERY OK source="media_items" db=0.4ms 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 [1997905] 05:52:14.175 [debug] Current batch of media processed. Will check again in 1000ms 05:52:15.176 [debug] Current batch of media processed. Will check again in 1000ms 05:52:16.177 [debug] Current batch of media processed. Will check again in 1000ms 05:52:17.178 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "if u can find me b2b clients - suraj@bugswriter.com", "duration" => 402, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122700_This side project was written in 3 hours | 2026 RIP Dev.mp4", "id" => "FY9rrTmYMww", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=FY9rrTmYMww", "playlist_index" => 10, "timestamp" => 1766875119, "title" => "This side project was written in 3 hours | 2026 RIP Dev", "upload_date" => "20251227"} 05:52:17.179 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1664.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:52:17.180 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1665.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] 05:52:17.181 [debug] QUERY OK source="media_items" db=0.8ms idle=1666.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-27 22:38:39Z], 46] 05:52:17.185 [debug] QUERY OK source="media_items" db=3.3ms idle=1035.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" ["if u can find me b2b clients - suraj@bugswriter.com", "This side project was written in 3 hours | 2026 RIP Dev", "43866387-d575-4b57-9785-25b835aef091", "FY9rrTmYMww", 402, false, "https://www.youtube.com/watch?v=FY9rrTmYMww", 10, "/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-03-01 11:52:17Z], ~U[2026-03-01 11:52:17Z], "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]] 05:52:17.186 [debug] QUERY OK source="sources" db=0.3ms idle=36.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] 05:52:17.187 [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] 05:52:17.188 [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 [1877810] 05:52:17.188 [debug] Current batch of media processed. Will check again in 1000ms 05:52:18.159 [info] {"args":{"id":2281148},"id":189113,"meta":{},"system_time":1772365938159067910,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":10,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:52:18.160 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=973.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" = ?) [2281148] 05:52:18.160 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:52:18.160 [debug] QUERY OK source="sources" db=0.4ms idle=973.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:52:18.161 [debug] QUERY OK source="media_profiles" db=0.4ms idle=973.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] 05:52:18.162 [debug] QUERY OK source="media_items" db=0.6ms idle=9.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 [2281148] 05:52:18.163 [debug] QUERY OK source="media_metadata" db=0.1ms idle=4.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" = ?) [2281148] 05:52:18.163 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:52:18.164 [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 [] 05:52:18.164 [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 [] 05:52:18.165 [debug] Running yt-dlp command for action: get_downloadable_status 05:52:18.167 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:52:18.168 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:52:18.168 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:52:18.168 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RzBuqvd_zD4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/e3/33/e333c5fb7527c9cb32b48cb1715d5a06a3876780e5d30f7ccc29fb959eec0164.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:52:18.188 [debug] Current batch of media processed. Will check again in 1000ms 05:52:19.189 [debug] Current batch of media processed. Will check again in 1000ms 05:52:20.190 [debug] Current batch of media processed. Will check again in 1000ms 05:52:21.191 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "write - suraj@bugswriter.com\nhttps://github.com/bugswriter/dontforget", "duration" => 693, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122600_This Linux Command deserves an Award.mp4", "id" => "BLez_d_Z8Dw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=BLez_d_Z8Dw", "playlist_index" => 11, "timestamp" => 1766739950, "title" => "This Linux Command deserves an Award", "upload_date" => "20251226"} 05:52:21.192 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1677.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] 05:52:21.193 [debug] QUERY OK source="sources" db=0.3ms idle=1678.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:52:21.194 [debug] QUERY OK source="media_items" db=1.2ms idle=1678.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-26 09:05:50Z], 46] 05:52:21.197 [debug] QUERY OK source="media_items" db=2.1ms idle=1039.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" ["write - suraj@bugswriter.com\nhttps://github.com/bugswriter/dontforget", "This Linux Command deserves an Award", "78d22f04-708e-4d80-afcf-299b7d43cf37", "BLez_d_Z8Dw", 693, false, "https://www.youtube.com/watch?v=BLez_d_Z8Dw", 11, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122600_This Linux Command deserves an Award.mp4", false, false, false, 46, [], 98, ~U[2025-12-26 09:05:50Z], ~U[2026-03-01 11:52:21Z], ~U[2026-03-01 11:52:21Z], "write - suraj@bugswriter.com\nhttps://github.com/bugswriter/dontforget", "This Linux Command deserves an Award", "BLez_d_Z8Dw", 693, false, "https://www.youtube.com/watch?v=BLez_d_Z8Dw", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122600_This Linux Command deserves an Award.mp4", false, 46, ~U[2025-12-26 09:05:50Z]] 05:52:21.198 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [46] 05:52:21.198 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:52:21.199 [debug] QUERY OK source="media_items" db=0.5ms 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 [1865120] 05:52:21.200 [debug] Current batch of media processed. Will check again in 1000ms 05:52:21.785 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RzBuqvd_zD4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/e3/33/e333c5fb7527c9cb32b48cb1715d5a06a3876780e5d30f7ccc29fb959eec0164.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] RzBuqvd_zD4: Join this channel to get access to members-only content like this video, and other exclusive perks. 05:52:21.785 [error] yt-dlp download error for media item #2281148: "ERROR: [youtube] RzBuqvd_zD4: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 05:52:21.787 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":2281148},"id":189113,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3626711,"event":"job:exception","queue_time":747993,"attempt":10,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:52:22.200 [debug] Current batch of media processed. Will check again in 1000ms 05:52:23.201 [debug] Current batch of media processed. Will check again in 1000ms 05:52:24.202 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "write - suraj@bugswriter.com", "duration" => 827, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122000_Healing depressed Linux Users.mp4", "id" => "hfCsDPg8T0A", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=hfCsDPg8T0A", "playlist_index" => 12, "timestamp" => 1766205856, "title" => "Healing depressed Linux Users", "upload_date" => "20251220"} 05:52:24.203 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1688.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] 05:52:24.204 [debug] QUERY OK source="sources" db=0.2ms idle=1041.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] 05:52:24.205 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=690.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-20 04:44:16Z], 46] 05:52:24.207 [debug] QUERY OK source="media_items" db=1.3ms idle=691.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" ["write - suraj@bugswriter.com", "Healing depressed Linux Users", "eee89088-0e97-49e5-96be-2206cb339d83", "hfCsDPg8T0A", 827, false, "https://www.youtube.com/watch?v=hfCsDPg8T0A", 12, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122000_Healing depressed Linux Users.mp4", false, false, false, 46, [], 98, ~U[2025-12-20 04:44:16Z], ~U[2026-03-01 11:52:24Z], ~U[2026-03-01 11:52:24Z], "write - suraj@bugswriter.com", "Healing depressed Linux Users", "hfCsDPg8T0A", 827, false, "https://www.youtube.com/watch?v=hfCsDPg8T0A", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122000_Healing depressed Linux Users.mp4", false, 46, ~U[2025-12-20 04:44:16Z]] 05:52:24.208 [debug] QUERY OK source="sources" db=0.4ms idle=42.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] 05:52:24.209 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:52:24.210 [debug] QUERY OK source="media_items" db=0.4ms 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 [1815904] 05:52:24.210 [debug] Current batch of media processed. Will check again in 1000ms 05:52:25.210 [debug] Current batch of media processed. Will check again in 1000ms 05:52:26.211 [debug] Current batch of media processed. Will check again in 1000ms 05:52:27.212 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "write - suraj@bugswriter.com", "duration" => 896, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121800_only computer science people will understand this....mp4", "id" => "uXaV1r9IRng", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=uXaV1r9IRng", "playlist_index" => 13, "timestamp" => 1766019829, "title" => "only computer science people will understand this...", "upload_date" => "20251218"} 05:52:27.213 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1698.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] 05:52:27.214 [debug] QUERY OK source="sources" db=0.2ms idle=1699.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:52:27.215 [debug] QUERY OK source="media_items" db=0.7ms idle=1699.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-18 01:03:49Z], 46] 05:52:27.217 [debug] QUERY OK source="media_items" db=1.4ms idle=1047.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" ["write - suraj@bugswriter.com", "only computer science people will understand this...", "d2695516-1e3d-4963-9cf9-174cf0dedb39", "uXaV1r9IRng", 896, false, "https://www.youtube.com/watch?v=uXaV1r9IRng", 13, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121800_only computer science people will understand this....mp4", false, false, false, 46, [], 98, ~U[2025-12-18 01:03:49Z], ~U[2026-03-01 11:52:27Z], ~U[2026-03-01 11:52:27Z], "write - suraj@bugswriter.com", "only computer science people will understand this...", "uXaV1r9IRng", 896, false, "https://www.youtube.com/watch?v=uXaV1r9IRng", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121800_only computer science people will understand this....mp4", false, 46, ~U[2025-12-18 01:03:49Z]] 05:52:27.218 [debug] QUERY OK source="sources" db=0.4ms idle=47.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:52:27.218 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 05:52:27.219 [debug] QUERY OK source="media_items" db=0.6ms 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 [1799377] 05:52:27.220 [debug] Current batch of media processed. Will check again in 1000ms 05:52:28.220 [debug] Current batch of media processed. Will check again in 1000ms 05:52:29.221 [debug] Current batch of media processed. Will check again in 1000ms 05:52:30.222 [debug] Current batch of media processed. Will check again in 1000ms 05:52:31.223 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "true - suraj@bugswriter.com", "duration" => 881, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121600_All Linux Hackers ... find this life hack.mp4", "id" => "8x722oYNR8U", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=8x722oYNR8U", "playlist_index" => 14, "timestamp" => 1765920232, "title" => "All Linux Hackers ... find this life hack", "upload_date" => "20251216"} 05:52:31.224 [debug] QUERY OK source="sources" db=0.3ms idle=709.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:52:31.225 [debug] QUERY OK source="sources" db=0.1ms idle=710.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:52:31.226 [debug] QUERY OK source="media_items" db=0.8ms idle=710.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-16 21:23:52Z], 46] 05:52:31.227 [debug] QUERY OK source="media_items" db=1.2ms idle=711.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" ["true - suraj@bugswriter.com", "All Linux Hackers ... find this life hack", "190f49a0-0634-4247-8a7b-619667c21af6", "8x722oYNR8U", 881, false, "https://www.youtube.com/watch?v=8x722oYNR8U", 14, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121600_All Linux Hackers ... find this life hack.mp4", false, false, false, 46, [], 98, ~U[2025-12-16 21:23:52Z], ~U[2026-03-01 11:52:31Z], ~U[2026-03-01 11:52:31Z], "true - suraj@bugswriter.com", "All Linux Hackers ... find this life hack", "8x722oYNR8U", 881, false, "https://www.youtube.com/watch?v=8x722oYNR8U", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121600_All Linux Hackers ... find this life hack.mp4", false, 46, ~U[2025-12-16 21:23:52Z]] 05:52:31.228 [debug] QUERY OK source="sources" db=0.4ms idle=49.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:52:31.229 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 05:52:31.230 [debug] QUERY OK source="media_items" db=0.3ms queue=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 [1789693] 05:52:31.230 [debug] Current batch of media processed. Will check again in 1000ms 05:52:32.231 [debug] Current batch of media processed. Will check again in 1000ms 05:52:33.232 [debug] Current batch of media processed. Will check again in 1000ms 05:52:34.233 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "write me - suraj@bugswriter.com", "duration" => 975, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121500_arch linux users reality check - I hate "technology".mp4", "id" => "K7owg2iyxtI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=K7owg2iyxtI", "playlist_index" => 15, "timestamp" => 1765838367, "title" => "arch linux users reality check - I hate \"technology\"", "upload_date" => "20251215"} 05:52:34.234 [debug] QUERY OK source="sources" db=0.2ms idle=1719.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:52:34.234 [debug] QUERY OK source="sources" db=0.1ms idle=1719.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] 05:52:34.235 [debug] QUERY OK source="media_items" db=0.4ms idle=1720.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-15 22:39:27Z], 46] 05:52:34.236 [debug] QUERY OK source="media_items" db=0.5ms idle=1053.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" ["write me - suraj@bugswriter.com", "arch linux users reality check - I hate \"technology\"", "656cbf07-0b10-4ade-925c-c1d9685ebb48", "K7owg2iyxtI", 975, false, "https://www.youtube.com/watch?v=K7owg2iyxtI", 15, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121500_arch linux users reality check - I hate "technology".mp4", false, false, false, 46, [], 98, ~U[2025-12-15 22:39:27Z], ~U[2026-03-01 11:52:34Z], ~U[2026-03-01 11:52:34Z], "write me - suraj@bugswriter.com", "arch linux users reality check - I hate \"technology\"", "K7owg2iyxtI", 975, false, "https://www.youtube.com/watch?v=K7owg2iyxtI", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121500_arch linux users reality check - I hate "technology".mp4", false, 46, ~U[2025-12-15 22:39:27Z]] 05:52:34.236 [debug] QUERY OK source="sources" db=0.1ms idle=51.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 05:52:34.236 [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] 05:52:34.237 [debug] QUERY OK source="media_items" db=0.1ms idle=2.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1782344] 05:52:34.237 [debug] Current batch of media processed. Will check again in 1000ms 05:52:35.237 [debug] Current batch of media processed. Will check again in 1000ms 05:52:36.238 [debug] Current batch of media processed. Will check again in 1000ms 05:52:37.239 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "write - suraj@bugswriter.com", "duration" => 619, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120900_piper tts is the chosen one (for my notifications).mp4", "id" => "osixWhig3AI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=osixWhig3AI", "playlist_index" => 16, "timestamp" => 1765277505, "title" => "piper tts is the chosen one (for my notifications)", "upload_date" => "20251209"} 05:52:37.240 [debug] QUERY OK source="sources" db=0.3ms idle=1725.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] 05:52:37.241 [debug] QUERY OK source="sources" db=0.3ms idle=1726.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:52:37.242 [debug] QUERY OK source="media_items" db=1.0ms idle=1726.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-09 10:51:45Z], 46] 05:52:37.244 [debug] QUERY OK source="media_items" db=1.3ms idle=1054.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" ["write - suraj@bugswriter.com", "piper tts is the chosen one (for my notifications)", "e8376007-6cf4-45f3-a384-e82ffe6a8103", "osixWhig3AI", 619, false, "https://www.youtube.com/watch?v=osixWhig3AI", 16, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120900_piper tts is the chosen one (for my notifications).mp4", false, false, false, 46, [], 98, ~U[2025-12-09 10:51:45Z], ~U[2026-03-01 11:52:37Z], ~U[2026-03-01 11:52:37Z], "write - suraj@bugswriter.com", "piper tts is the chosen one (for my notifications)", "osixWhig3AI", 619, false, "https://www.youtube.com/watch?v=osixWhig3AI", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120900_piper tts is the chosen one (for my notifications).mp4", false, 46, ~U[2025-12-09 10:51:45Z]] 05:52:37.245 [debug] QUERY OK source="sources" db=0.3ms idle=53.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 05:52:37.245 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 05:52:37.247 [debug] QUERY OK source="media_items" db=0.6ms 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 [1730517] 05:52:37.247 [debug] Current batch of media processed. Will check again in 1000ms 05:52:37.307 [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/f2/6d/f26d6811523e3c93854dfbb8f97051b16ec626d80b6c049275367d2e8e5cfe3b.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/4c/f0/4cf0db50b5e9fe847e1ff76699882568f1a7a0b2093d198e1b5b7c18edfb8dfc.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 05:52:37.307 [debug] Gracefully stopping file follower 05:52:37.308 [debug] QUERY OK source="sources" db=0.5ms idle=65.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:52:37.309 [debug] QUERY OK source="sources" db=0.2ms idle=64.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:52:37.310 [debug] QUERY OK source="media_items" db=0.6ms idle=64.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] 05:52:37.311 [debug] QUERY OK source="media_items" db=1.1ms idle=64.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" ["Mentioned - @DigitalMetal \n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Linux / FOSS are irrelevant in the future", "3df787e0-c578-4d18-993e-72e4c7a52578", "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-03-01 11:52:37Z], ~U[2026-03-01 11:52:37Z], "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]] 05:52:37.312 [debug] QUERY OK source="sources" db=0.4ms idle=64.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:52:37.313 [debug] QUERY OK source="media_items" db=0.6ms 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-02-27 19:45:12Z], 46] 05:52:37.315 [debug] QUERY OK source="media_items" db=1.4ms 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" ["Jade Wine video on emptiness - \nhttps://www.youtube.com/watch?v=CDS9DH385p8\n\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "6 senses which control our lives", "73c0193d-6c37-4848-8ba8-1f431170450f", "BFKnEakU_gs", 1591, false, "https://www.youtube.com/watch?v=BFKnEakU_gs", 2, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022700_6 senses which control our lives.mp4", false, false, false, 46, [], 98, ~U[2026-02-27 19:45:12Z], ~U[2026-03-01 11:52:37Z], ~U[2026-03-01 11:52:37Z], "Jade Wine video on emptiness - \nhttps://www.youtube.com/watch?v=CDS9DH385p8\n\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "6 senses which control our lives", "BFKnEakU_gs", 1591, false, "https://www.youtube.com/watch?v=BFKnEakU_gs", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022700_6 senses which control our lives.mp4", false, 46, ~U[2026-02-27 19:45:12Z]] 05:52:37.316 [debug] QUERY OK source="sources" db=0.5ms idle=5.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 05:52:37.317 [debug] QUERY OK source="media_items" db=0.7ms 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-02-26 09:21:43Z], 46] 05:52:37.318 [debug] QUERY OK source="media_items" db=1.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" ["read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "HOST FREE from home (no tunnel, no VPS, no Static IP)", "7bd8b5eb-638c-4515-8093-9131225839a7", "7y60xBovdnI", 507, false, "https://www.youtube.com/watch?v=7y60xBovdnI", 3, "/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-03-01 11:52:37Z], ~U[2026-03-01 11:52: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]] 05:52:37.319 [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" = ?) [46] 05:52:37.320 [debug] QUERY OK source="media_items" db=0.8ms 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-02-21 22:08:12Z], 46] 05:52:37.322 [debug] QUERY OK source="media_items" db=1.3ms 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" ["support - https://paypal.me/bugswriter\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Resisting Temptation...", "d8c02d07-461f-4e05-9fd9-b37489eccf42", "qWAc5SzU6-c", 837, false, "https://www.youtube.com/watch?v=qWAc5SzU6-c", 4, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022100_Resisting Temptation....mp4", false, false, false, 46, [], 98, ~U[2026-02-21 22:08:12Z], ~U[2026-03-01 11:52:37Z], ~U[2026-03-01 11:52:37Z], "support - https://paypal.me/bugswriter\n\nread - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Resisting Temptation...", "qWAc5SzU6-c", 837, false, "https://www.youtube.com/watch?v=qWAc5SzU6-c", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2026/s2026e022100_Resisting Temptation....mp4", false, 46, ~U[2026-02-21 22:08:12Z]] 05:52:37.322 [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" = ?) [46] 05:52:37.324 [debug] QUERY OK source="media_items" db=0.9ms 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-02-20 11:51:09Z], 46] 05:52:37.325 [debug] QUERY OK source="media_items" db=1.1ms 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" ["read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "MacOS *float vs Hyprland *tile", "6a59ee04-547e-4805-960c-6020f94404cb", "LrOuqMzKdAE", 684, false, "https://www.youtube.com/watch?v=LrOuqMzKdAE", 5, "/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-03-01 11:52:37Z], ~U[2026-03-01 11:52:37Z], "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]] 05:52:37.326 [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" = ?) [46] 05:52:37.327 [debug] QUERY OK source="media_items" db=0.7ms 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-02-14 23:11:56Z], 46] 05:52:37.329 [debug] QUERY OK source="media_items" db=1.0ms idle=4.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", "74ec5188-2b87-4306-add9-31813d4587e9", "kD1VhTacIc8", 1711, false, "https://www.youtube.com/watch?v=kD1VhTacIc8", 6, "/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-03-01 11:52:37Z], ~U[2026-03-01 11:52:37Z], "- 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]] 05:52:37.329 [debug] QUERY OK source="sources" db=0.5ms 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" = ?) [46] 05:52:37.331 [debug] QUERY OK source="media_items" db=0.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-02-09 09:31:08Z], 46] 05:52:37.333 [debug] QUERY OK source="media_items" db=1.5ms 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" ["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", "8af0a03a-7d86-4f35-b935-e5c140428f24", "f4vblLRAYSg", 748, false, "https://www.youtube.com/watch?v=f4vblLRAYSg", 7, "/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-03-01 11:52:37Z], ~U[2026-03-01 11:52:37Z], "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]] 05:52:37.333 [debug] QUERY OK source="sources" db=0.5ms 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] 05:52:37.334 [debug] QUERY OK source="media_items" db=0.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-01-26 20:36:08Z], 46] 05:52:37.336 [debug] QUERY OK source="media_items" db=1.3ms 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" ["read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "Freedom vs Compliance", "450765c9-f25a-4c03-9046-32245ff3911f", "f5qgJ9xThYs", 829, false, "https://www.youtube.com/watch?v=f5qgJ9xThYs", 8, "/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-03-01 11:52:37Z], ~U[2026-03-01 11:52:37Z], "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]] 05:52:37.337 [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" = ?) [46] 05:52:37.338 [debug] QUERY OK source="media_items" db=0.7ms 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-01-11 23:25:59Z], 46] 05:52:37.340 [debug] QUERY OK source="media_items" db=1.1ms idle=4.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) ?", "daf8c6e6-a523-45f6-b5cc-c84c836ab0c7", "giQ_7l5p2Kg", 727, false, "https://www.youtube.com/watch?v=giQ_7l5p2Kg", 9, "/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-03-01 11:52:37Z], ~U[2026-03-01 11:52:37Z], "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]] 05:52:37.340 [debug] QUERY OK source="sources" db=0.5ms idle=5.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 05:52:37.341 [debug] QUERY OK source="media_items" db=0.8ms 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[2025-12-27 22:38:39Z], 46] 05:52:37.344 [debug] QUERY OK source="media_items" db=2.2ms 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" ["if u can find me b2b clients - suraj@bugswriter.com", "This side project was written in 3 hours | 2026 RIP Dev", "50de6159-c29a-4b51-918e-f41f04aa4851", "FY9rrTmYMww", 402, false, "https://www.youtube.com/watch?v=FY9rrTmYMww", 10, "/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-03-01 11:52:37Z], ~U[2026-03-01 11:52:37Z], "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]] 05:52:37.345 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [46] 05:52:37.346 [debug] QUERY OK source="media_items" db=0.8ms 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[2025-12-26 09:05:50Z], 46] 05:52:37.347 [debug] QUERY OK source="media_items" db=1.0ms 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" ["write - suraj@bugswriter.com\nhttps://github.com/bugswriter/dontforget", "This Linux Command deserves an Award", "6b245805-3e83-4adc-baf5-8d782e8fac4f", "BLez_d_Z8Dw", 693, false, "https://www.youtube.com/watch?v=BLez_d_Z8Dw", 11, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122600_This Linux Command deserves an Award.mp4", false, false, false, 46, [], 98, ~U[2025-12-26 09:05:50Z], ~U[2026-03-01 11:52:37Z], ~U[2026-03-01 11:52:37Z], "write - suraj@bugswriter.com\nhttps://github.com/bugswriter/dontforget", "This Linux Command deserves an Award", "BLez_d_Z8Dw", 693, false, "https://www.youtube.com/watch?v=BLez_d_Z8Dw", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122600_This Linux Command deserves an Award.mp4", false, 46, ~U[2025-12-26 09:05:50Z]] 05:52:37.348 [debug] QUERY OK source="sources" db=0.5ms 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" = ?) [46] 05:52:37.349 [debug] QUERY OK source="media_items" db=0.8ms 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[2025-12-20 04:44:16Z], 46] 05:52:37.351 [debug] QUERY OK source="media_items" db=1.0ms idle=4.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" ["write - suraj@bugswriter.com", "Healing depressed Linux Users", "03b91054-d0d4-4de1-b4b7-e0ddc9ff6c69", "hfCsDPg8T0A", 827, false, "https://www.youtube.com/watch?v=hfCsDPg8T0A", 12, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122000_Healing depressed Linux Users.mp4", false, false, false, 46, [], 98, ~U[2025-12-20 04:44:16Z], ~U[2026-03-01 11:52:37Z], ~U[2026-03-01 11:52:37Z], "write - suraj@bugswriter.com", "Healing depressed Linux Users", "hfCsDPg8T0A", 827, false, "https://www.youtube.com/watch?v=hfCsDPg8T0A", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122000_Healing depressed Linux Users.mp4", false, 46, ~U[2025-12-20 04:44:16Z]] 05:52:37.352 [debug] QUERY OK source="sources" db=0.7ms 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" = ?) [46] 05:52:37.353 [debug] QUERY OK source="media_items" db=0.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[2025-12-18 01:03:49Z], 46] 05:52:37.356 [debug] QUERY OK source="media_items" db=2.0ms 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" ["write - suraj@bugswriter.com", "only computer science people will understand this...", "1342f819-40a9-47ad-9b84-6878a307a5d0", "uXaV1r9IRng", 896, false, "https://www.youtube.com/watch?v=uXaV1r9IRng", 13, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121800_only computer science people will understand this....mp4", false, false, false, 46, [], 98, ~U[2025-12-18 01:03:49Z], ~U[2026-03-01 11:52:37Z], ~U[2026-03-01 11:52:37Z], "write - suraj@bugswriter.com", "only computer science people will understand this...", "uXaV1r9IRng", 896, false, "https://www.youtube.com/watch?v=uXaV1r9IRng", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121800_only computer science people will understand this....mp4", false, 46, ~U[2025-12-18 01:03:49Z]] 05:52:37.356 [debug] QUERY OK source="sources" db=0.5ms 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" = ?) [46] 05:52:37.357 [debug] QUERY OK source="media_items" db=0.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[2025-12-16 21:23:52Z], 46] 05:52:37.359 [debug] QUERY OK source="media_items" db=1.1ms 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" ["true - suraj@bugswriter.com", "All Linux Hackers ... find this life hack", "5ab500fd-d787-41bb-8fc3-d5d9f5d17787", "8x722oYNR8U", 881, false, "https://www.youtube.com/watch?v=8x722oYNR8U", 14, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121600_All Linux Hackers ... find this life hack.mp4", false, false, false, 46, [], 98, ~U[2025-12-16 21:23:52Z], ~U[2026-03-01 11:52:37Z], ~U[2026-03-01 11:52:37Z], "true - suraj@bugswriter.com", "All Linux Hackers ... find this life hack", "8x722oYNR8U", 881, false, "https://www.youtube.com/watch?v=8x722oYNR8U", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121600_All Linux Hackers ... find this life hack.mp4", false, 46, ~U[2025-12-16 21:23:52Z]] 05:52:37.360 [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" = ?) [46] 05:52:37.361 [debug] QUERY OK source="media_items" db=1.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[2025-12-15 22:39:27Z], 46] 05:52:37.363 [debug] QUERY OK source="media_items" db=1.2ms 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" ["write me - suraj@bugswriter.com", "arch linux users reality check - I hate \"technology\"", "b23667c0-eddf-439a-9ca6-bc07179d7483", "K7owg2iyxtI", 975, false, "https://www.youtube.com/watch?v=K7owg2iyxtI", 15, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121500_arch linux users reality check - I hate "technology".mp4", false, false, false, 46, [], 98, ~U[2025-12-15 22:39:27Z], ~U[2026-03-01 11:52:37Z], ~U[2026-03-01 11:52:37Z], "write me - suraj@bugswriter.com", "arch linux users reality check - I hate \"technology\"", "K7owg2iyxtI", 975, false, "https://www.youtube.com/watch?v=K7owg2iyxtI", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121500_arch linux users reality check - I hate "technology".mp4", false, 46, ~U[2025-12-15 22:39:27Z]] 05:52:37.364 [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" = ?) [46] 05:52:37.365 [debug] QUERY OK source="media_items" db=0.8ms 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[2025-12-09 10:51:45Z], 46] 05:52:37.366 [debug] QUERY OK source="media_items" db=1.2ms 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" ["write - suraj@bugswriter.com", "piper tts is the chosen one (for my notifications)", "6b8a0b0f-c874-4091-9151-7e756f7f6791", "osixWhig3AI", 619, false, "https://www.youtube.com/watch?v=osixWhig3AI", 16, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120900_piper tts is the chosen one (for my notifications).mp4", false, false, false, 46, [], 98, ~U[2025-12-09 10:51:45Z], ~U[2026-03-01 11:52:37Z], ~U[2026-03-01 11:52:37Z], "write - suraj@bugswriter.com", "piper tts is the chosen one (for my notifications)", "osixWhig3AI", 619, false, "https://www.youtube.com/watch?v=osixWhig3AI", "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120900_piper tts is the chosen one (for my notifications).mp4", false, 46, ~U[2025-12-09 10:51:45Z]] 05:52:37.367 [debug] QUERY OK source="sources" db=0.4ms idle=5.6ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-01 11:52:37Z], ~U[2026-03-01 11:52:37Z], 46] 05:52:37.369 [debug] QUERY OK source="media_items" db=1.1ms idle=4.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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] 05:52:37.370 [debug] QUERY OK source="media_items" db=1.1ms idle=5.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")))) [46] 05:52:37.371 [debug] QUERY OK source="media_items" db=0.5ms idle=5.7ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [46] 05:52:37.374 [debug] QUERY OK source="tasks" db=0.6ms idle=4.8ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189145, 46, ~U[2026-03-01 11:52:37Z], ~U[2026-03-01 11:52:37Z]] 05:52:37.375 [info] {"args":{"id":46},"id":189055,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":59298110,"event":"job:stop","queue_time":48101,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 05:52:41.561 [info] {"source":"oban","duration":12755,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:52:52.227 [info] {"args":{"id":1175255},"id":188949,"meta":{},"system_time":1772365972227814246,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":13,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:52:52.228 [debug] QUERY OK source="media_items" db=0.4ms idle=1713.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" = ?) [1175255] 05:52:52.228 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:52:52.230 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=1010.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:52:52.230 [debug] QUERY OK source="media_profiles" db=0.3ms idle=715.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] 05:52:52.231 [debug] QUERY OK source="media_items" db=0.3ms idle=9.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 [1175255] 05:52:52.233 [debug] QUERY OK source="media_metadata" db=0.1ms idle=5.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] 05:52:52.233 [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] 05:52:52.234 [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 [] 05:52:52.234 [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 [] 05:52:52.235 [debug] Running yt-dlp command for action: get_downloadable_status 05:52:52.236 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:52:52.236 [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 [] 05:52:52.236 [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 [] 05:52:52.237 [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/77/46/77460151ddd7b173c89356e030d4f7eef644cd2de5da61929c42fedc4d21af82.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:52:55.135 [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/77/46/77460151ddd7b173c89356e030d4f7eef644cd2de5da61929c42fedc4d21af82.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. 05:52:55.135 [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" 05:52:55.136 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1175255},"id":188949,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2907800,"event":"job:exception","queue_time":555607,"attempt":13,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:53:00.122 [info] {"source":"oban","duration":283,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:53:11.573 [info] {"source":"oban","duration":12194,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:53:25.291 [info] {"args":{"id":1074108},"id":165409,"meta":{},"system_time":1772366005290847099,"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"]} 05:53:25.291 [debug] QUERY OK source="media_items" db=0.3ms idle=1776.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" = ?) [1074108] 05:53:25.291 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:53:25.292 [debug] QUERY OK source="sources" db=0.8ms idle=1777.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:53:25.293 [debug] QUERY OK source="media_profiles" db=0.3ms idle=1011.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] 05:53:25.294 [debug] QUERY OK source="media_items" db=0.4ms idle=9.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 [1074108] 05:53:25.296 [debug] QUERY OK source="media_metadata" db=0.1ms idle=5.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" = ?) [1074108] 05:53:25.296 [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] 05:53:25.297 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:53:25.297 [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 [] 05:53:25.297 [debug] Running yt-dlp command for action: get_downloadable_status 05:53:25.299 [debug] QUERY OK source="settings" db=0.1ms 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 [] 05:53:25.300 [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 [] 05:53:25.300 [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 [] 05:53:25.300 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SlUlcJbdGGQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/42/19/421919d5f7bd31ae7745a9c324c92f5cffc84d50fef5074aad2720ada26322f5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:53:28.000 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=SlUlcJbdGGQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/42/19/421919d5f7bd31ae7745a9c324c92f5cffc84d50fef5074aad2720ada26322f5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] SlUlcJbdGGQ: Join this channel to get access to members-only content like this video, and other exclusive perks. 05:53:28.000 [error] yt-dlp download error for media item #1074108: "ERROR: [youtube] SlUlcJbdGGQ: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 05:53:28.001 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1074108},"id":165409,"meta":{},"state":"discard","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2709773,"event":"job:exception","queue_time":392566,"attempt":20,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:53:41.586 [info] {"source":"oban","duration":12250,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:54:00.123 [info] {"source":"oban","duration":257,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:54:11.600 [info] {"source":"oban","duration":13278,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:54:41.617 [info] {"source":"oban","duration":16127,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:55:00.124 [info] {"source":"oban","duration":322,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:55:11.631 [info] {"source":"oban","duration":12999,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:55:41.646 [info] {"source":"oban","duration":13732,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 05:55:47.598 [info] {"args":{"id":1284280},"id":188950,"meta":{},"system_time":1772366147598181981,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":13,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:55:47.600 [debug] QUERY OK source="media_items" db=1.6ms idle=84.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" = ?) [1284280] 05:55:47.600 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:55:47.601 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=86.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] 05:55:47.602 [debug] QUERY OK source="media_profiles" db=0.5ms idle=87.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] 05:55:47.603 [debug] QUERY OK source="media_items" db=0.6ms idle=12.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 [1284280] 05:55:47.605 [debug] QUERY OK source="media_metadata" db=0.1ms idle=6.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" = ?) [1284280] 05:55:47.605 [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] 05:55:47.606 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:55:47.606 [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 [] 05:55:47.607 [debug] Running yt-dlp command for action: get_downloadable_status 05:55:47.607 [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 [] 05:55:47.608 [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 [] 05:55:47.608 [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 [] 05:55:47.608 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=VrhvwfEN3oA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/46/12/4612b90750436c4a8569cf637615a137478bfdb23f250f65c830face27521072.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:55:51.591 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=VrhvwfEN3oA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/46/12/4612b90750436c4a8569cf637615a137478bfdb23f250f65c830face27521072.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] VrhvwfEN3oA: Join this channel to get access to members-only content like this video, and other exclusive perks. 05:55:51.591 [error] yt-dlp download error for media item #1284280: "ERROR: [youtube] VrhvwfEN3oA: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 05:55:51.593 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1284280},"id":188950,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3993926,"event":"job:exception","queue_time":779198,"attempt":13,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:56:00.125 [info] {"source":"oban","duration":423,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:56:11.695 [info] {"source":"oban","duration":47639,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 05:56:19.671 [info] {"args":{"id":57},"id":187456,"meta":{},"system_time":1772366179671328201,"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"]} 05:56:19.672 [debug] QUERY OK source="sources" db=0.6ms idle=157.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:56:19.673 [debug] QUERY OK source="settings" db=0.5ms idle=158.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:56:19.675 [debug] QUERY OK source="media_items" db=1.6ms idle=159.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")))) [57] 05:56:19.676 [debug] QUERY OK source="media_items" db=0.6ms idle=8.8ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [57] 05:56:19.677 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:56:19.678 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:56:19.678 [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 [] 05:56:19.682 [debug] QUERY OK source="media_items" db=2.3ms idle=4.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [57] 05:56:19.687 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 05:56:19.687 [debug] Current batch of media processed. Will check again in 1000ms 05:56:19.687 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=10.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:56:19.688 [debug] QUERY OK source="settings" db=0.2ms idle=10.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:56:19.688 [debug] QUERY OK source="settings" db=0.2ms idle=10.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:56:19.689 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/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/88/77/88779e5b42ab900217fc86120216f3b5684242fe8e421a87b85de78bca66b042.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/1f/b5/1fb5344c21b27b8f6ec02c9e10b2ef8a7ac0113ad82902e0b050f617bb9e77c6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:56:20.688 [debug] Current batch of media processed. Will check again in 1000ms 05:56:21.689 [debug] Current batch of media processed. Will check again in 1000ms 05:56:22.690 [debug] Current batch of media processed. Will check again in 1000ms 05:56:23.691 [debug] Current batch of media processed. Will check again in 1000ms 05:56:24.692 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "Vercel vs Netlify vs Cloudflare. Software architecture is much more important than your hosting provider.", "duration" => 280, "filename" => "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e022500_Edge performance doesn't matter....NA", "id" => "gr2KohQMK6U", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=gr2KohQMK6U", "playlist_index" => 1, "timestamp" => 1772029622, "title" => "Edge performance doesn't matter...", "upload_date" => "20260225"} 05:56:24.693 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1178.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [57] 05:56:24.694 [debug] QUERY OK source="sources" db=0.4ms idle=1179.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:56:24.696 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=1180.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-25 14:27:02Z], 57] 05:56:24.699 [debug] QUERY OK source="media_items" db=1.7ms 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" ["Vercel vs Netlify vs Cloudflare. Software architecture is much more important than your hosting provider.", "Edge performance doesn't matter...", "ea1707aa-6b8e-4040-a1e9-8ee2c604d24f", "gr2KohQMK6U", 280, false, "https://www.youtube.com/watch?v=gr2KohQMK6U", 1, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e022500_Edge performance doesn't matter....NA", false, false, false, 57, [], 97, ~U[2026-02-25 14:27:02Z], ~U[2026-03-01 11:56:24Z], ~U[2026-03-01 11:56:24Z], "Vercel vs Netlify vs Cloudflare. Software architecture is much more important than your hosting provider.", "Edge performance doesn't matter...", "gr2KohQMK6U", 280, false, "https://www.youtube.com/watch?v=gr2KohQMK6U", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e022500_Edge performance doesn't matter....NA", false, 57, ~U[2026-02-25 14:27:02Z]] 05:56:24.700 [debug] QUERY OK source="sources" db=0.5ms idle=19.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [57] 05:56:24.701 [debug] QUERY OK source="media_profiles" db=0.4ms queue=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] 05:56:24.702 [debug] QUERY OK source="media_items" db=0.8ms 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 [2358863] 05:56:24.702 [info] Kicking off download for media item #2358863 (gr2KohQMK6U) 05:56:24.709 [debug] QUERY OK source="tasks" db=0.7ms idle=8.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189146, 2358863, ~U[2026-03-01 11:56:24Z], ~U[2026-03-01 11:56:24Z]] 05:56:24.710 [debug] Current batch of media processed. Will check again in 1000ms 05:56:24.716 [info] {"args":{"id":2358863},"id":189146,"meta":{},"system_time":1772366184716224686,"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"]} 05:56:24.717 [debug] QUERY OK source="media_items" db=0.4ms idle=14.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [2358863] 05:56:24.717 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:56:24.718 [debug] QUERY OK source="sources" db=0.6ms idle=10.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [57] 05:56:24.719 [debug] QUERY OK source="media_profiles" db=0.4ms idle=10.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] 05:56:24.720 [debug] QUERY OK source="media_items" db=0.6ms idle=9.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 [2358863] 05:56:24.722 [debug] QUERY OK source="media_metadata" db=0.2ms 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" = ?) [2358863] 05:56:24.723 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:56:24.724 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:56:24.724 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:56:24.725 [debug] Running yt-dlp command for action: get_downloadable_status 05:56:24.727 [debug] QUERY OK source="settings" db=0.3ms idle=6.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:56:24.727 [debug] QUERY OK source="settings" db=0.3ms 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 [] 05:56:24.728 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:56:24.728 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=gr2KohQMK6U --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/9c/14/9c140a15667222a521b43d6f56c005f2a7612f16fada54fedeb332beeb64687b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:56:25.710 [debug] Current batch of media processed. Will check again in 1000ms 05:56:26.711 [debug] Current batch of media processed. Will check again in 1000ms 05:56:27.712 [debug] Current batch of media processed. Will check again in 1000ms 05:56:28.713 [debug] Current batch of media processed. Will check again in 1000ms 05:56:29.714 [debug] Current batch of media processed. Will check again in 1000ms 05:56:30.627 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=gr2KohQMK6U --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/9c/14/9c140a15667222a521b43d6f56c005f2a7612f16fada54fedeb332beeb64687b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] gr2KohQMK6U: This video is available to this channel's members on level: Senior (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 05:56:30.628 [error] yt-dlp download error for media item #2358863: "ERROR: [youtube] gr2KohQMK6U: This video is available to this channel's members on level: Senior (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 05:56:30.628 [error] yt-dlp download will not be retried: "ERROR: [youtube] gr2KohQMK6U: This video is available to this channel's members on level: Senior (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 05:56:30.630 [info] {"args":{"id":2358863},"id":189146,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5912705,"event":"job:stop","queue_time":714401,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:56:30.715 [debug] Current batch of media processed. Will check again in 1000ms 05:56:31.716 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Addy Osmani's take on the future of software.\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- AI productivity compression\n- Junior pipeline disruption\n- Skill atrophy vs leverage\n- Developer role redefined\n- Oversight vs architecture\n- Rise of T-Shaped engineers\n- Education legitimacy crisis\n\n📄 Sources:\nhttps://addyosmani.com/blog/next-two-years/\nhttps://newsletter.eng-leadership.com/p/96-engineers-dont-fully-trust-ai", "duration" => 502, "filename" => "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e022500_The next two years of software dev....mp4", "id" => "fQeybL6w-Wo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=fQeybL6w-Wo", "playlist_index" => 2, "timestamp" => 1772013659, "title" => "The next two years of software dev...", "upload_date" => "20260225"} 05:56:31.718 [debug] QUERY OK source="sources" db=0.6ms idle=1202.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 (?)) [57] 05:56:31.719 [debug] QUERY OK source="sources" db=0.5ms idle=1088.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] 05:56:31.720 [debug] QUERY OK source="media_items" db=1.0ms idle=1080.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-25 10:00:59Z], 57] 05:56:31.723 [debug] QUERY OK source="media_items" db=2.4ms idle=1021.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" ["Addy Osmani's take on the future of software.\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- AI productivity compression\n- Junior pipeline disruption\n- Skill atrophy vs leverage\n- Developer role redefined\n- Oversight vs architecture\n- Rise of T-Shaped engineers\n- Education legitimacy crisis\n\n📄 Sources:\nhttps://addyosmani.com/blog/next-two-years/\nhttps://newsletter.eng-leadership.com/p/96-engineers-dont-fully-trust-ai", "The next two years of software dev...", "d22578de-67da-444d-b2b4-63e0b10c36a8", "fQeybL6w-Wo", 502, false, "https://www.youtube.com/watch?v=fQeybL6w-Wo", 2, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e022500_The next two years of software dev....mp4", false, false, false, 57, [], 97, ~U[2026-02-25 10:00:59Z], ~U[2026-03-01 11:56:31Z], ~U[2026-03-01 11:56:31Z], "Addy Osmani's take on the future of software.\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- AI productivity compression\n- Junior pipeline disruption\n- Skill atrophy vs leverage\n- Developer role redefined\n- Oversight vs architecture\n- Rise of T-Shaped engineers\n- Education legitimacy crisis\n\n📄 Sources:\nhttps://addyosmani.com/blog/next-two-years/\nhttps://newsletter.eng-leadership.com/p/96-engineers-dont-fully-trust-ai", "The next two years of software dev...", "fQeybL6w-Wo", 502, false, "https://www.youtube.com/watch?v=fQeybL6w-Wo", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e022500_The next two years of software dev....mp4", false, 57, ~U[2026-02-25 10:00:59Z]] 05:56:31.724 [debug] QUERY OK source="sources" db=0.6ms idle=21.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] 05:56:31.726 [debug] QUERY OK source="media_profiles" db=0.7ms queue=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] 05:56:31.727 [debug] QUERY OK source="media_items" db=0.9ms 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 [2351075] 05:56:31.727 [debug] Current batch of media processed. Will check again in 1000ms 05:56:32.728 [debug] Current batch of media processed. Will check again in 1000ms 05:56:33.729 [debug] Current batch of media processed. Will check again in 1000ms 05:56:34.730 [debug] Current batch of media processed. Will check again in 1000ms 05:56:35.731 [debug] Current batch of media processed. Will check again in 1000ms 05:56:36.732 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Please check out https://mdb.link/try-mongodb-coding-observability-4 to learn more about MongoDB Observability.\n\n💬 Topics:\n- Lines of Code Myth\n- AI Code Illusion\n- Simplicity Over Complexity\n- Hidden Abstractions\n- Zero-Cost Principle\n- Deep vs Shallow Modules\n- Engineering as Curation", "duration" => 551, "filename" => "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e022300_The art of deleting code.mp4", "id" => "DlM2S42x00c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=DlM2S42x00c", "playlist_index" => 3, "timestamp" => 1771855229, "title" => "The art of deleting code", "upload_date" => "20260223"} 05:56:36.734 [debug] QUERY OK source="sources" db=0.5ms queue=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" IN (?)) [57] 05:56:36.735 [debug] QUERY OK source="sources" db=0.4ms queue=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" = ?) [57] 05:56:36.737 [debug] QUERY OK source="media_items" db=1.4ms queue=0.1ms idle=1220.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-23 14:00:29Z], 57] 05:56:36.767 [debug] QUERY OK source="media_items" db=28.8ms queue=0.1ms idle=1023.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" ["Please check out https://mdb.link/try-mongodb-coding-observability-4 to learn more about MongoDB Observability.\n\n💬 Topics:\n- Lines of Code Myth\n- AI Code Illusion\n- Simplicity Over Complexity\n- Hidden Abstractions\n- Zero-Cost Principle\n- Deep vs Shallow Modules\n- Engineering as Curation", "The art of deleting code", "cc97eca1-7924-482c-a551-9a958ccf281c", "DlM2S42x00c", 551, false, "https://www.youtube.com/watch?v=DlM2S42x00c", 3, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e022300_The art of deleting code.mp4", false, false, false, 57, [], 98, ~U[2026-02-23 14:00:29Z], ~U[2026-03-01 11:56:36Z], ~U[2026-03-01 11:56:36Z], "Please check out https://mdb.link/try-mongodb-coding-observability-4 to learn more about MongoDB Observability.\n\n💬 Topics:\n- Lines of Code Myth\n- AI Code Illusion\n- Simplicity Over Complexity\n- Hidden Abstractions\n- Zero-Cost Principle\n- Deep vs Shallow Modules\n- Engineering as Curation", "The art of deleting code", "DlM2S42x00c", 551, false, "https://www.youtube.com/watch?v=DlM2S42x00c", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e022300_The art of deleting code.mp4", false, 57, ~U[2026-02-23 14:00:29Z]] 05:56:36.768 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=51.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:56:36.770 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.2ms idle=35.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] 05:56:36.771 [debug] QUERY OK source="media_items" db=0.8ms idle=35.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 [2343210] 05:56:36.772 [debug] Current batch of media processed. Will check again in 1000ms 05:56:37.772 [debug] Current batch of media processed. Will check again in 1000ms 05:56:38.773 [debug] Current batch of media processed. Will check again in 1000ms 05:56:39.774 [debug] Current batch of media processed. Will check again in 1000ms 05:56:40.775 [debug] Current batch of media processed. Will check again in 1000ms 05:56:41.722 [info] {"source":"oban","duration":26645,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 05:56:41.776 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Why lines of code is a useless metric.\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- The lines of code myth;\n- Code quantity over quality\n- AI-driven code inflation\n- Instant legacy systems\n- Activity vs achievement", "duration" => 327, "filename" => "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e021800_Code quality doesn't matter anymore....mp4", "id" => "POMqB6tGB74", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=POMqB6tGB74", "playlist_index" => 4, "timestamp" => 1771423245, "title" => "Code quality doesn't matter anymore...", "upload_date" => "20260218"} 05:56:41.778 [debug] QUERY OK source="sources" db=0.9ms idle=1262.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [57] 05:56:41.779 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1264.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:56:41.781 [debug] QUERY OK source="media_items" db=1.5ms queue=0.1ms idle=1051.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-18 14:00:45Z], 57] 05:56:41.785 [debug] QUERY OK source="media_items" db=2.4ms idle=60.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" ["Why lines of code is a useless metric.\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- The lines of code myth;\n- Code quantity over quality\n- AI-driven code inflation\n- Instant legacy systems\n- Activity vs achievement", "Code quality doesn't matter anymore...", "4d2dac7c-ee5d-4031-862f-90ab3c86cbb5", "POMqB6tGB74", 327, false, "https://www.youtube.com/watch?v=POMqB6tGB74", 4, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e021800_Code quality doesn't matter anymore....mp4", false, false, false, 57, [], 98, ~U[2026-02-18 14:00:45Z], ~U[2026-03-01 11:56:41Z], ~U[2026-03-01 11:56:41Z], "Why lines of code is a useless metric.\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- The lines of code myth;\n- Code quantity over quality\n- AI-driven code inflation\n- Instant legacy systems\n- Activity vs achievement", "Code quality doesn't matter anymore...", "POMqB6tGB74", 327, false, "https://www.youtube.com/watch?v=POMqB6tGB74", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e021800_Code quality doesn't matter anymore....mp4", false, 57, ~U[2026-02-18 14:00:45Z]] 05:56:41.786 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms 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" = ?) [57] 05:56:41.787 [debug] QUERY OK source="media_profiles" db=0.5ms idle=8.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:56:41.788 [debug] QUERY OK source="media_items" db=0.9ms 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 [2303892] 05:56:41.789 [debug] Current batch of media processed. Will check again in 1000ms 05:56:42.789 [debug] Current batch of media processed. Will check again in 1000ms 05:56:43.790 [debug] Current batch of media processed. Will check again in 1000ms 05:56:44.791 [debug] Current batch of media processed. Will check again in 1000ms 05:56:45.792 [debug] Current batch of media processed. Will check again in 1000ms 05:56:46.793 [debug] Current batch of media processed. Will check again in 1000ms 05:56:47.794 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A quick look at modern Java and project Valhalla.\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- Java longevity over language trends\n- Mature ecosystems outperform novelty\n- Null safety in legacy systems\n- Project Valhalla performance goals\n- Value objects\n- Universal generics", "duration" => 519, "filename" => "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e021600_Java’s biggest upgrade in decades.mp4", "id" => "UuQQVY9jxSs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=UuQQVY9jxSs", "playlist_index" => 5, "timestamp" => 1771239656, "title" => "Java’s biggest upgrade in decades", "upload_date" => "20260216"} 05:56:47.796 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=280.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [57] 05:56:47.797 [debug] QUERY OK source="sources" db=0.6ms idle=281.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] 05:56:47.799 [debug] QUERY OK source="media_items" db=1.6ms idle=283.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-16 11:00:56Z], 57] 05:56:47.803 [debug] QUERY OK source="media_items" db=3.3ms queue=0.1ms idle=285.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 quick look at modern Java and project Valhalla.\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- Java longevity over language trends\n- Mature ecosystems outperform novelty\n- Null safety in legacy systems\n- Project Valhalla performance goals\n- Value objects\n- Universal generics", "Java’s biggest upgrade in decades", "89e9e029-9833-47c5-9823-f80bcef5d3f3", "UuQQVY9jxSs", 519, false, "https://www.youtube.com/watch?v=UuQQVY9jxSs", 5, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e021600_Java’s biggest upgrade in decades.mp4", false, false, false, 57, [], 98, ~U[2026-02-16 11:00:56Z], ~U[2026-03-01 11:56:47Z], ~U[2026-03-01 11:56:47Z], "A quick look at modern Java and project Valhalla.\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- Java longevity over language trends\n- Mature ecosystems outperform novelty\n- Null safety in legacy systems\n- Project Valhalla performance goals\n- Value objects\n- Universal generics", "Java’s biggest upgrade in decades", "UuQQVY9jxSs", 519, false, "https://www.youtube.com/watch?v=UuQQVY9jxSs", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e021600_Java’s biggest upgrade in decades.mp4", false, 57, ~U[2026-02-16 11:00:56Z]] 05:56:47.805 [debug] QUERY OK source="sources" db=0.8ms idle=57.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] 05:56:47.806 [debug] QUERY OK source="media_profiles" db=0.6ms idle=9.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] 05:56:47.807 [debug] QUERY OK source="media_items" db=0.8ms idle=9.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 [2280577] 05:56:47.807 [debug] Current batch of media processed. Will check again in 1000ms 05:56:48.808 [debug] Current batch of media processed. Will check again in 1000ms 05:56:49.809 [debug] Current batch of media processed. Will check again in 1000ms 05:56:50.810 [debug] Current batch of media processed. Will check again in 1000ms 05:56:51.768 [info] {"args":{"id":52},"id":189141,"meta":{},"system_time":1772366211768324744,"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"]} 05:56:51.769 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=254.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] 05:56:51.770 [debug] QUERY OK source="settings" db=0.5ms queue=0.2ms idle=255.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:56:51.772 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.1ms idle=256.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] 05:56:51.773 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=12.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:56:51.773 [debug] Fetching recent media IDs from YouTube RSS feed for source: UC9H0HzpKf5JlazkADWnW1Jw 05:56:51.812 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A quick look at Claude's generated C compiler.\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- AI agents redefine success criteria\n- Autonomous iteration over functionality\n- Incomplete compiler dependent on GCC\n- Training data limits reasoning ability\n- AI hype exceeds practical results", "duration" => 297, "filename" => "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e021100_The new Claude just generated the worst C compiler ever....mp4", "id" => "mb5Lx4auBKI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=mb5Lx4auBKI", "playlist_index" => 6, "timestamp" => 1770825679, "title" => "The new Claude just generated the worst C compiler ever...", "upload_date" => "20260211"} 05:56:51.813 [debug] QUERY OK source="sources" db=0.7ms queue=0.2ms idle=44.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 (?)) [57] 05:56:51.814 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=44.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" = ?) [57] 05:56:51.817 [debug] QUERY OK source="media_items" db=1.7ms queue=0.2ms idle=44.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-11 16:01:19Z], 57] 05:56:51.822 [debug] QUERY OK source="media_items" db=3.3ms queue=0.1ms idle=46.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 quick look at Claude's generated C compiler.\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- AI agents redefine success criteria\n- Autonomous iteration over functionality\n- Incomplete compiler dependent on GCC\n- Training data limits reasoning ability\n- AI hype exceeds practical results", "The new Claude just generated the worst C compiler ever...", "4f8ce134-045d-43bb-ac74-4e6f0dd07563", "mb5Lx4auBKI", 297, false, "https://www.youtube.com/watch?v=mb5Lx4auBKI", 6, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e021100_The new Claude just generated the worst C compiler ever....mp4", false, false, false, 57, [], 98, ~U[2026-02-11 16:01:19Z], ~U[2026-03-01 11:56:51Z], ~U[2026-03-01 11:56:51Z], "A quick look at Claude's generated C compiler.\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- AI agents redefine success criteria\n- Autonomous iteration over functionality\n- Incomplete compiler dependent on GCC\n- Training data limits reasoning ability\n- AI hype exceeds practical results", "The new Claude just generated the worst C compiler ever...", "mb5Lx4auBKI", 297, false, "https://www.youtube.com/watch?v=mb5Lx4auBKI", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e021100_The new Claude just generated the worst C compiler ever....mp4", false, 57, ~U[2026-02-11 16:01:19Z]] 05:56:51.823 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=49.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] 05:56:51.824 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.1ms idle=10.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] 05:56:51.827 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=10.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 [2249212] 05:56:51.827 [debug] Current batch of media processed. Will check again in 1000ms 05:56:52.033 [debug] Media ids fetched from RSS: ["AmqmI9SxdNc", "QwSDD2rvrbg", "M5fh85WVkPU", "AJGwm6P_f_8", "mfWhlH-5ooY", "eMl7jhLvHOQ", "GYBOJiYvtbI", "zMSL-kTF8LE", "lf9pprK5gg8", "WP69p26qNZY", "OuvUK9ZdjPs", "CA-0MvrvWAU", "-80I7UZL3hk", "hJ3wG8PVhPw", "HzeBu2mVff4"] 05:56:52.035 [debug] QUERY OK source="media_items" db=1.6ms queue=0.1ms idle=216.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" = ?) AND m0."media_id" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [52, "AmqmI9SxdNc", "QwSDD2rvrbg", "M5fh85WVkPU", "AJGwm6P_f_8", "mfWhlH-5ooY", "eMl7jhLvHOQ", "GYBOJiYvtbI", "zMSL-kTF8LE", "lf9pprK5gg8", "WP69p26qNZY", "OuvUK9ZdjPs", "CA-0MvrvWAU", "-80I7UZL3hk", "hJ3wG8PVhPw", "HzeBu2mVff4"] 05:56:52.038 [debug] QUERY OK source="media_items" db=1.6ms idle=215.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")))) [52] 05:56:52.047 [debug] QUERY OK source="tasks" db=0.8ms idle=219.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189147, 1301334, ~U[2026-03-01 11:56:52Z], ~U[2026-03-01 11:56:52Z]] 05:56:52.056 [debug] QUERY OK source="tasks" db=0.7ms queue=0.1ms idle=9.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189148, 1301335, ~U[2026-03-01 11:56:52Z], ~U[2026-03-01 11:56:52Z]] 05:56:52.059 [info] {"args":{"id":1301334},"id":189147,"meta":{},"system_time":1772366212059343328,"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"]} 05:56:52.060 [info] {"args":{"id":1301335},"id":189148,"meta":{},"system_time":1772366212059512069,"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"]} 05:56:52.062 [debug] QUERY OK source="media_items" db=2.7ms idle=6.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1301334] 05:56:52.062 [debug] QUERY OK source="media_items" db=2.5ms idle=5.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1301335] 05:56:52.063 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:56:52.063 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:56:52.065 [debug] QUERY OK source="sources" db=2.0ms idle=4.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 05:56:52.066 [debug] QUERY OK source="sources" db=2.4ms queue=0.2ms idle=7.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 05:56:52.068 [debug] QUERY OK source="media_profiles" db=1.4ms queue=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] 05:56:52.068 [debug] QUERY OK source="media_profiles" db=1.9ms queue=0.2ms idle=3.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:56:52.070 [debug] QUERY OK source="media_items" db=1.7ms idle=2.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1301334] 05:56:52.071 [debug] QUERY OK source="media_items" db=1.8ms 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 [1301335] 05:56:52.072 [debug] QUERY OK source="tasks" db=0.8ms idle=2.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189149, 1301347, ~U[2026-03-01 11:56:52Z], ~U[2026-03-01 11:56:52Z]] 05:56:52.073 [debug] QUERY OK source="media_metadata" db=0.7ms 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" = ?) [1301334] 05:56:52.075 [debug] QUERY OK source="media_profiles" db=1.7ms queue=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] 05:56:52.075 [debug] QUERY OK source="media_metadata" db=1.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" = ?) [1301335] 05:56:52.076 [debug] QUERY OK source="media_profiles" db=0.6ms 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] 05:56:52.077 [debug] QUERY OK source="settings" db=0.9ms 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 [] 05:56:52.078 [debug] QUERY OK source="settings" db=0.9ms 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 [] 05:56:52.078 [debug] QUERY OK source="settings" db=1.4ms 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 [] 05:56:52.079 [debug] Running yt-dlp command for action: get_downloadable_status 05:56:52.079 [debug] QUERY OK source="settings" db=0.9ms queue=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 [] 05:56:52.081 [debug] Running yt-dlp command for action: get_downloadable_status 05:56:52.082 [debug] QUERY OK source="settings" db=0.6ms 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 [] 05:56:52.083 [debug] QUERY OK source="settings" db=0.8ms 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 [] 05:56:52.084 [debug] QUERY OK source="settings" db=1.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 [] 05:56:52.084 [debug] QUERY OK source="settings" db=0.9ms queue=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 [] 05:56:52.084 [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/c9/d7/c9d78b99179b72bff26880eb9d7d47f030ad9bf447fdbe4a987dbdd7f422225f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:56:52.085 [debug] QUERY OK source="settings" db=1.0ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:56:52.086 [debug] QUERY OK source="settings" db=0.5ms queue=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 [] 05:56:52.087 [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/6d/b1/6db1fc4514b38a92c1d3d5a5296d249838cb16b5a1646478e417e97d6337040a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:56:52.088 [debug] QUERY OK source="tasks" db=1.0ms queue=0.3ms idle=2.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189150, 1301392, ~U[2026-03-01 11:56:52Z], ~U[2026-03-01 11:56:52Z]] 05:56:52.096 [debug] QUERY OK source="tasks" db=0.9ms idle=9.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189151, 1301393, ~U[2026-03-01 11:56:52Z], ~U[2026-03-01 11:56:52Z]] 05:56:52.104 [debug] QUERY OK source="tasks" db=0.9ms idle=9.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189152, 1301394, ~U[2026-03-01 11:56:52Z], ~U[2026-03-01 11:56:52Z]] 05:56:52.113 [debug] QUERY OK source="tasks" db=0.9ms idle=9.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189153, 1301395, ~U[2026-03-01 11:56:52Z], ~U[2026-03-01 11:56:52Z]] 05:56:52.124 [debug] QUERY OK source="tasks" db=0.8ms idle=11.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189154, 1301397, ~U[2026-03-01 11:56:52Z], ~U[2026-03-01 11:56:52Z]] 05:56:52.133 [debug] QUERY OK source="tasks" db=1.0ms idle=10.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189155, 1301398, ~U[2026-03-01 11:56:52Z], ~U[2026-03-01 11:56:52Z]] 05:56:52.142 [debug] QUERY OK source="tasks" db=1.0ms idle=10.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189156, 1301399, ~U[2026-03-01 11:56:52Z], ~U[2026-03-01 11:56:52Z]] 05:56:52.152 [debug] QUERY OK source="tasks" db=1.0ms queue=0.1ms idle=11.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189157, 1301400, ~U[2026-03-01 11:56:52Z], ~U[2026-03-01 11:56:52Z]] 05:56:52.156 [debug] QUERY OK source="tasks" db=1.0ms idle=6.4ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189158, 52, ~U[2026-03-01 11:56:52Z], ~U[2026-03-01 11:56:52Z]] 05:56:52.158 [info] {"args":{"id":52},"id":189141,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":388554,"event":"job:stop","queue_time":990644,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 05:56:52.828 [debug] Current batch of media processed. Will check again in 1000ms 05:56:53.829 [debug] Current batch of media processed. Will check again in 1000ms 05:56:54.830 [debug] Current batch of media processed. Will check again in 1000ms 05:56:55.831 [debug] Current batch of media processed. Will check again in 1000ms 05:56:56.832 [debug] Current batch of media processed. Will check again in 1000ms 05:56:57.833 [debug] Current batch of media processed. Will check again in 1000ms 05:56:58.834 [debug] Current batch of media processed. Will check again in 1000ms 05:56:59.835 [debug] Current batch of media processed. Will check again in 1000ms 05:57:00.127 [info] {"source":"oban","duration":921,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:57:00.314 [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/6d/b1/6db1fc4514b38a92c1d3d5a5296d249838cb16b5a1646478e417e97d6337040a.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. 05:57:00.315 [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" 05:57:00.316 [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" 05:57:00.319 [info] {"args":{"id":1301335},"id":189148,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":8257564,"event":"job:stop","queue_time":51391,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:57:00.333 [info] {"args":{"id":1301347},"id":189149,"meta":{},"system_time":1772366220332875616,"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"]} 05:57:00.336 [debug] QUERY OK source="media_items" db=1.8ms queue=0.1ms idle=819.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" = ?) [1301347] 05:57:00.337 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:57:00.340 [debug] QUERY OK source="sources" db=2.0ms queue=0.1ms idle=526.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 05:57:00.343 [debug] QUERY OK source="media_profiles" db=1.5ms queue=0.2ms idle=213.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] 05:57:00.348 [debug] QUERY OK source="media_items" db=3.0ms queue=0.3ms idle=25.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 [1301347] 05:57:00.353 [debug] QUERY OK source="media_metadata" db=0.7ms queue=0.1ms idle=20.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] 05:57:00.355 [debug] QUERY OK source="media_profiles" db=1.2ms queue=0.2ms idle=17.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] 05:57:00.358 [debug] QUERY OK source="settings" db=1.1ms queue=0.2ms idle=17.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:00.360 [debug] QUERY OK source="settings" db=0.8ms queue=0.1ms idle=16.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:00.363 [debug] Running yt-dlp command for action: get_downloadable_status 05:57:00.367 [debug] QUERY OK source="settings" db=0.8ms queue=0.2ms 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 [] 05:57:00.369 [debug] QUERY OK source="settings" db=0.9ms queue=0.2ms idle=14.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:00.371 [debug] QUERY OK source="settings" db=1.1ms queue=0.1ms idle=14.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:00.372 [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/86/29/8629698f430e5526462b91d1b69db182954eba0ad72192046c385627355e4f2d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:57:00.405 [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/c9/d7/c9d78b99179b72bff26880eb9d7d47f030ad9bf447fdbe4a987dbdd7f422225f.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. 05:57:00.406 [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" 05:57:00.407 [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" 05:57:00.411 [info] {"args":{"id":1301334},"id":189147,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":8348966,"event":"job:stop","queue_time":51391,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:57:00.423 [info] {"args":{"id":1301392},"id":189150,"meta":{},"system_time":1772366220423272732,"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"]} 05:57:00.427 [debug] QUERY OK source="media_items" db=1.8ms queue=0.2ms idle=57.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" = ?) [1301392] 05:57:00.428 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:57:00.431 [debug] QUERY OK source="sources" db=1.7ms queue=0.4ms idle=59.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] 05:57:00.434 [debug] QUERY OK source="media_profiles" db=1.7ms queue=0.3ms idle=60.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] 05:57:00.438 [debug] QUERY OK source="media_items" db=2.0ms queue=0.2ms idle=25.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] 05:57:00.443 [debug] QUERY OK source="media_metadata" db=0.8ms queue=0.2ms idle=19.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] 05:57:00.445 [debug] QUERY OK source="media_profiles" db=1.4ms queue=0.2ms idle=17.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] 05:57:00.449 [debug] QUERY OK source="settings" db=0.8ms queue=0.2ms idle=17.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:00.451 [debug] QUERY OK source="settings" db=1.2ms queue=0.2ms idle=15.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:00.453 [debug] Running yt-dlp command for action: get_downloadable_status 05:57:00.457 [debug] QUERY OK source="settings" db=1.0ms queue=0.2ms idle=18.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:00.459 [debug] QUERY OK source="settings" db=0.8ms queue=0.1ms idle=15.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:00.461 [debug] QUERY OK source="settings" db=1.1ms queue=0.1ms idle=14.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:00.462 [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/57/30/5730826959422572e68027510b6f4f655972adf14c15fc94d326436f8f3fb869.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:57:00.836 [debug] Current batch of media processed. Will check again in 1000ms 05:57:01.839 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "An overview of the JS ecosystem in 2026\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- React architectural debt\n- Signal-based reactivity shift\n- Abstraction ceiling reached\n- Isomorphic application frameworks\n- Framework convergence era", "duration" => 505, "filename" => "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e020900_Frameworks don't matter anymore....mp4", "id" => "wkXvv0iJffg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=wkXvv0iJffg", "playlist_index" => 7, "timestamp" => 1770634911, "title" => "Frameworks don't matter anymore...", "upload_date" => "20260209"} 05:57:01.841 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=325.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [57] 05:57:01.844 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=328.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:57:01.849 [debug] QUERY OK source="media_items" db=3.9ms queue=0.2ms idle=330.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-09 11:01:51Z], 57] 05:57:01.859 [debug] QUERY OK source="media_items" db=6.7ms queue=0.1ms idle=336.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 overview of the JS ecosystem in 2026\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- React architectural debt\n- Signal-based reactivity shift\n- Abstraction ceiling reached\n- Isomorphic application frameworks\n- Framework convergence era", "Frameworks don't matter anymore...", "e4fe987a-5eb2-4440-8837-431ea0bcdfc0", "wkXvv0iJffg", 505, false, "https://www.youtube.com/watch?v=wkXvv0iJffg", 7, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e020900_Frameworks don't matter anymore....mp4", false, false, false, 57, [], 98, ~U[2026-02-09 11:01:51Z], ~U[2026-03-01 11:57:01Z], ~U[2026-03-01 11:57:01Z], "An overview of the JS ecosystem in 2026\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- React architectural debt\n- Signal-based reactivity shift\n- Abstraction ceiling reached\n- Isomorphic application frameworks\n- Framework convergence era", "Frameworks don't matter anymore...", "wkXvv0iJffg", 505, false, "https://www.youtube.com/watch?v=wkXvv0iJffg", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e020900_Frameworks don't matter anymore....mp4", false, 57, ~U[2026-02-09 11:01:51Z]] 05:57:01.862 [debug] QUERY OK source="sources" db=1.7ms queue=0.3ms idle=36.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:57:01.865 [debug] QUERY OK source="media_profiles" db=1.7ms queue=0.2ms idle=21.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] 05:57:01.869 [debug] QUERY OK source="media_items" db=2.2ms queue=0.2ms idle=22.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 [2225616] 05:57:01.870 [debug] Current batch of media processed. Will check again in 1000ms 05:57:02.870 [debug] Current batch of media processed. Will check again in 1000ms 05:57:03.871 [debug] Current batch of media processed. Will check again in 1000ms 05:57:04.872 [debug] Current batch of media processed. Will check again in 1000ms 05:57:05.873 [debug] Current batch of media processed. Will check again in 1000ms 05:57:06.874 [debug] Current batch of media processed. Will check again in 1000ms 05:57:07.875 [debug] Current batch of media processed. Will check again in 1000ms 05:57:08.877 [debug] Current batch of media processed. Will check again in 1000ms 05:57:09.723 [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/86/29/8629698f430e5526462b91d1b69db182954eba0ad72192046c385627355e4f2d.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. 05:57:09.723 [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" 05:57:09.724 [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" 05:57:09.728 [info] {"args":{"id":1301347},"id":189149,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":9392591,"event":"job:stop","queue_time":8326472,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:57:09.742 [info] {"args":{"id":1301393},"id":189151,"meta":{},"system_time":1772366229741830926,"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"]} 05:57:09.746 [debug] QUERY OK source="media_items" db=2.0ms queue=0.3ms idle=228.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] 05:57:09.747 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:57:09.751 [debug] QUERY OK source="sources" db=2.3ms queue=0.3ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 05:57:09.754 [debug] QUERY OK source="media_profiles" db=2.3ms queue=0.1ms idle=236.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] 05:57:09.759 [debug] QUERY OK source="media_items" db=2.6ms queue=0.4ms idle=28.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1301393] 05:57:09.765 [debug] QUERY OK source="media_metadata" db=0.6ms queue=0.2ms idle=23.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] 05:57:09.768 [debug] QUERY OK source="media_profiles" db=1.5ms queue=0.2ms idle=20.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] 05:57:09.771 [debug] QUERY OK source="settings" db=0.9ms queue=0.1ms idle=19.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:09.773 [debug] QUERY OK source="settings" db=1.3ms queue=0.2ms idle=17.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:09.775 [debug] Running yt-dlp command for action: get_downloadable_status 05:57:09.779 [debug] QUERY OK source="settings" db=0.8ms queue=0.1ms idle=19.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:09.781 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=14.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:09.783 [debug] QUERY OK source="settings" db=0.9ms queue=0.4ms idle=13.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:09.783 [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/ad/f7/adf78531f5db00e31f4c7011ef90ff2f40c1207e2d261d452b7d3937fe25a999.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:57:09.878 [debug] Current batch of media processed. Will check again in 1000ms 05:57:10.041 [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/57/30/5730826959422572e68027510b6f4f655972adf14c15fc94d326436f8f3fb869.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. 05:57:10.042 [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" 05:57:10.043 [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" 05:57:10.046 [info] {"args":{"id":1301392},"id":189150,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":9620274,"event":"job:stop","queue_time":8417523,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:57:10.060 [info] {"args":{"id":1301394},"id":189152,"meta":{},"system_time":1772366230060080771,"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"]} 05:57:10.063 [debug] QUERY OK source="media_items" db=1.6ms queue=0.3ms idle=280.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" = ?) [1301394] 05:57:10.064 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:57:10.067 [debug] QUERY OK source="sources" db=1.7ms queue=0.5ms idle=282.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:57:10.070 [debug] QUERY OK source="media_profiles" db=1.6ms queue=0.4ms idle=195.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] 05:57:10.074 [debug] QUERY OK source="media_items" db=2.1ms queue=0.3ms idle=26.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] 05:57:10.079 [debug] QUERY OK source="media_metadata" db=0.6ms queue=0.1ms idle=18.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] 05:57:10.081 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.2ms idle=16.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] 05:57:10.084 [debug] QUERY OK source="settings" db=0.6ms queue=0.2ms idle=15.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:10.086 [debug] QUERY OK source="settings" db=0.9ms queue=0.3ms idle=14.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:10.088 [debug] Running yt-dlp command for action: get_downloadable_status 05:57:10.092 [debug] QUERY OK source="settings" db=1.2ms queue=0.1ms idle=16.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:10.094 [debug] QUERY OK source="settings" db=1.0ms queue=0.4ms idle=14.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:10.097 [debug] QUERY OK source="settings" db=1.0ms queue=0.4ms idle=14.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:10.098 [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/e6/34/e634f92cd9c34535af53178469d66d14b49b2582f8d044a9d5bc1c485571ce1a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:57:10.880 [debug] Current batch of media processed. Will check again in 1000ms 05:57:11.766 [info] {"source":"oban","duration":43194,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:57:11.882 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Cheap code generation and abstraction increases noise and fragility. First principles matter more than ever.\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- AI lowers code quality globally\n- Open source contribution rules shifting\n- Mechanics optimized over understanding\n- Cheap output increases software noise\n- Abstraction removes ownership responsibility\n- Principles constrain complex systems\n\n🌐 Sources:\nhttps://www.reddit.com/r/webdev/comments/1qpqapj/metas_crawler_made_11_million_requests_to_my_site/\nhttps://swizec.com/blog/the-future-of-software-engineering-is-sre", "duration" => 510, "filename" => "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e020600_Vercel and Meta can bankrupt you....mp4", "id" => "Js2mDEFU968", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Js2mDEFU968", "playlist_index" => 8, "timestamp" => 1770375636, "title" => "Vercel and Meta can bankrupt you...", "upload_date" => "20260206"} 05:57:11.885 [debug] QUERY OK source="sources" db=2.1ms queue=0.2ms idle=368.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [57] 05:57:11.888 [debug] QUERY OK source="sources" db=1.2ms queue=0.2ms idle=371.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" = ?) [57] 05:57:11.892 [debug] QUERY OK source="media_items" db=3.0ms queue=0.2ms idle=373.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 11:00:36Z], 57] 05:57:11.902 [debug] QUERY OK source="media_items" db=6.9ms idle=127.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" ["Cheap code generation and abstraction increases noise and fragility. First principles matter more than ever.\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- AI lowers code quality globally\n- Open source contribution rules shifting\n- Mechanics optimized over understanding\n- Cheap output increases software noise\n- Abstraction removes ownership responsibility\n- Principles constrain complex systems\n\n🌐 Sources:\nhttps://www.reddit.com/r/webdev/comments/1qpqapj/metas_crawler_made_11_million_requests_to_my_site/\nhttps://swizec.com/blog/the-future-of-software-engineering-is-sre", "Vercel and Meta can bankrupt you...", "8dccb560-5590-458d-adf6-eb3ebb7a9e0b", "Js2mDEFU968", 510, false, "https://www.youtube.com/watch?v=Js2mDEFU968", 8, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e020600_Vercel and Meta can bankrupt you....mp4", false, false, false, 57, [], 98, ~U[2026-02-06 11:00:36Z], ~U[2026-03-01 11:57:11Z], ~U[2026-03-01 11:57:11Z], "Cheap code generation and abstraction increases noise and fragility. First principles matter more than ever.\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- AI lowers code quality globally\n- Open source contribution rules shifting\n- Mechanics optimized over understanding\n- Cheap output increases software noise\n- Abstraction removes ownership responsibility\n- Principles constrain complex systems\n\n🌐 Sources:\nhttps://www.reddit.com/r/webdev/comments/1qpqapj/metas_crawler_made_11_million_requests_to_my_site/\nhttps://swizec.com/blog/the-future-of-software-engineering-is-sre", "Vercel and Meta can bankrupt you...", "Js2mDEFU968", 510, false, "https://www.youtube.com/watch?v=Js2mDEFU968", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e020600_Vercel and Meta can bankrupt you....mp4", false, 57, ~U[2026-02-06 11:00:36Z]] 05:57:11.905 [debug] QUERY OK source="sources" db=2.0ms queue=0.1ms idle=17.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:57:11.908 [debug] QUERY OK source="media_profiles" db=1.9ms queue=0.4ms idle=20.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] 05:57:11.912 [debug] QUERY OK source="media_items" db=2.4ms queue=0.1ms idle=21.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 [2209886] 05:57:11.913 [debug] Current batch of media processed. Will check again in 1000ms 05:57:12.915 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "Windows has a huge problem.", "duration" => 249, "filename" => "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e020300_Microsoft has a huge problem....NA", "id" => "E7dA8htDvk0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=E7dA8htDvk0", "playlist_index" => 9, "timestamp" => 1770133250, "title" => "Microsoft has a huge problem...", "upload_date" => "20260203"} 05:57:12.917 [debug] QUERY OK source="sources" db=1.2ms queue=0.2ms idle=1014.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 (?)) [57] 05:57:12.919 [debug] QUERY OK source="sources" db=1.3ms queue=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" = ?) [57] 05:57:12.924 [debug] QUERY OK source="media_items" db=3.4ms queue=0.2ms idle=1012.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-03 15:40:50Z], 57] 05:57:12.932 [debug] QUERY OK source="media_items" db=5.5ms queue=0.2ms idle=1013.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" ["Windows has a huge problem.", "Microsoft has a huge problem...", "f5869b2b-381e-4654-b667-73d0e2cfa763", "E7dA8htDvk0", 249, false, "https://www.youtube.com/watch?v=E7dA8htDvk0", 9, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e020300_Microsoft has a huge problem....NA", false, false, false, 57, [], 98, ~U[2026-02-03 15:40:50Z], ~U[2026-03-01 11:57:12Z], ~U[2026-03-01 11:57:12Z], "Windows has a huge problem.", "Microsoft has a huge problem...", "E7dA8htDvk0", 249, false, "https://www.youtube.com/watch?v=E7dA8htDvk0", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e020300_Microsoft has a huge problem....NA", false, 57, ~U[2026-02-03 15:40:50Z]] 05:57:12.934 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=40.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:57:12.938 [debug] QUERY OK source="media_profiles" db=3.2ms queue=0.2ms idle=18.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] 05:57:12.942 [debug] QUERY OK source="media_items" db=2.2ms queue=0.2ms idle=20.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 [2186150] 05:57:12.943 [info] Kicking off download for media item #2186150 (E7dA8htDvk0) 05:57:12.965 [debug] QUERY OK source="tasks" db=3.0ms queue=0.2ms idle=27.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189159, 2186150, ~U[2026-03-01 11:57:12Z], ~U[2026-03-01 11:57:12Z]] 05:57:12.965 [debug] Current batch of media processed. Will check again in 1000ms 05:57:13.967 [debug] Current batch of media processed. Will check again in 1000ms 05:57:14.968 [debug] Current batch of media processed. Will check again in 1000ms 05:57:15.970 [debug] Current batch of media processed. Will check again in 1000ms 05:57:16.971 [debug] Current batch of media processed. Will check again in 1000ms 05:57:17.972 [debug] Current batch of media processed. Will check again in 1000ms 05:57:18.704 [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/ad/f7/adf78531f5db00e31f4c7011ef90ff2f40c1207e2d261d452b7d3937fe25a999.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. 05:57:18.705 [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" 05:57:18.706 [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" 05:57:18.709 [info] {"args":{"id":1301393},"id":189151,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":8964490,"event":"job:stop","queue_time":17735529,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:57:18.720 [info] {"args":{"id":1301395},"id":189153,"meta":{},"system_time":1772366238720106420,"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"]} 05:57:18.723 [debug] QUERY OK source="media_items" db=1.5ms queue=0.3ms idle=206.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] 05:57:18.724 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:57:18.727 [debug] QUERY OK source="sources" db=1.6ms queue=0.4ms idle=210.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:57:18.730 [debug] QUERY OK source="media_profiles" db=1.4ms queue=0.2ms idle=213.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] 05:57:18.733 [debug] QUERY OK source="media_items" db=1.9ms queue=0.3ms idle=22.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] 05:57:18.739 [debug] QUERY OK source="media_metadata" db=0.7ms queue=0.2ms idle=18.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] 05:57:18.741 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.2ms idle=16.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] 05:57:18.744 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=15.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:18.745 [debug] QUERY OK source="settings" db=0.4ms queue=0.3ms idle=14.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:18.747 [debug] Running yt-dlp command for action: get_downloadable_status 05:57:18.752 [debug] QUERY OK source="settings" db=1.0ms queue=0.1ms idle=17.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:18.753 [debug] QUERY OK source="settings" db=0.6ms queue=0.3ms idle=13.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:18.755 [debug] QUERY OK source="settings" db=0.8ms queue=0.2ms idle=13.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:18.756 [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/42/96/4296e2237b05fbc448ba7458abc3038c5c8dc939065fa30e3cfc011191d84218.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:57:18.857 [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/e6/34/e634f92cd9c34535af53178469d66d14b49b2582f8d044a9d5bc1c485571ce1a.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. 05:57:18.858 [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" 05:57:18.858 [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" 05:57:18.861 [info] {"args":{"id":1301394},"id":189152,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":8799298,"event":"job:stop","queue_time":18053495,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:57:18.873 [info] {"args":{"id":1301397},"id":189154,"meta":{},"system_time":1772366238872662486,"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"]} 05:57:18.875 [debug] QUERY OK source="media_items" db=1.4ms idle=121.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" = ?) [1301397] 05:57:18.876 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:57:18.879 [debug] QUERY OK source="sources" db=1.8ms queue=0.2ms 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" = ?) [52] 05:57:18.882 [debug] QUERY OK source="media_profiles" db=2.2ms queue=0.1ms idle=124.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] 05:57:18.887 [debug] QUERY OK source="media_items" db=2.9ms queue=0.2ms idle=22.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] 05:57:18.892 [debug] QUERY OK source="media_metadata" db=0.7ms queue=0.1ms idle=18.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] 05:57:18.895 [debug] QUERY OK source="media_profiles" db=1.9ms queue=0.2ms idle=17.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] 05:57:18.898 [debug] QUERY OK source="settings" db=1.1ms queue=0.1ms idle=18.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:18.900 [debug] QUERY OK source="settings" db=1.1ms queue=0.3ms idle=16.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:18.903 [debug] Running yt-dlp command for action: get_downloadable_status 05:57:18.906 [debug] QUERY OK source="settings" db=0.8ms queue=0.2ms idle=18.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:18.908 [debug] QUERY OK source="settings" db=0.9ms queue=0.1ms idle=15.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:18.910 [debug] QUERY OK source="settings" db=1.2ms queue=0.2ms idle=14.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:18.911 [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/ad/c8/adc8e931b89aa944f48a4cb638ca1db0b150512fdd59ebcca553ca58c358c4b1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:57:18.973 [debug] Current batch of media processed. Will check again in 1000ms 05:57:19.853 [info] GET /sources/46/media/1997905/edit 05:57:19.854 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1997905", "source_id" => "46"} Pipelines: [:browser] 05:57:19.856 [debug] QUERY OK source="media_items" db=1.5ms queue=0.1ms idle=954.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" = ?) [1997905] 05:57:19.859 [debug] QUERY OK source="settings" db=0.7ms queue=0.2ms idle=951.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:19.861 [debug] QUERY OK source="settings" db=0.8ms queue=0.2ms idle=951.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:19.864 [debug] QUERY OK source="settings" db=0.7ms queue=0.2ms idle=953.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:19.870 [info] Sent 200 in 17ms 05:57:19.975 [debug] Current batch of media processed. Will check again in 1000ms 05:57:20.162 [info] GET /sources/37/media/2074840 05:57:20.162 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2074840", "source_id" => "37"} Pipelines: [:browser] 05:57:20.166 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=307.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" = ?) [2074840] 05:57:20.169 [debug] QUERY OK source="tasks" db=1.1ms queue=0.3ms idle=308.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" [2074840] 05:57:20.170 [debug] QUERY OK source="sources" db=1.9ms queue=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 05:57:20.173 [debug] QUERY OK source="settings" db=0.9ms queue=0.2ms idle=307.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:20.174 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=233.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:20.177 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=11.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:20.181 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms idle=10.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] 05:57:20.189 [info] Sent 200 in 27ms 05:57:20.662 [info] GET /sources/57/force_download_pending 05:57:20.665 [debug] QUERY OK source="settings" db=0.8ms queue=0.1ms idle=493.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:20.666 [debug] QUERY OK source="settings" db=0.9ms queue=0.1ms idle=492.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:20.667 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 05:57:20.668 [error] #PID<0.166494.0> running PinchflatWeb.Endpoint (connection #PID<0.166488.0>, stream id 3) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/57/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/57/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.166488.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/force_download_pending", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52922}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.166494.0>, params: %{}, path_info: ["sources", "57", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/57/force_download_pending", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJi1tJqU1AlHK80AUs4B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.166488.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/force_download_pending", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52922}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.166488.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/force_download_pending", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52922}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.166494.0>, params: %{}, path_info: ["sources", "57", "force_download_pending"], path_params: %{}, port: 80, private: %{ (truncated) 05:57:20.976 [debug] Current batch of media processed. Will check again in 1000ms 05:57:21.164 [info] GET /sources/37/media/2010951 05:57:21.165 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2010951", "source_id" => "37"} Pipelines: [:browser] 05:57:21.169 [debug] QUERY OK source="media_items" db=1.5ms queue=0.5ms idle=989.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" = ?) [2010951] 05:57:21.172 [debug] QUERY OK source="tasks" db=1.4ms queue=0.2ms idle=989.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" [2010951] 05:57:21.173 [debug] QUERY OK source="sources" db=2.0ms queue=0.1ms idle=506.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 05:57:21.176 [debug] QUERY OK source="settings" db=0.9ms queue=0.2ms idle=508.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:21.178 [debug] QUERY OK source="settings" db=1.0ms queue=0.1ms idle=229.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:21.181 [debug] QUERY OK source="settings" db=0.8ms queue=0.2ms idle=11.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:21.186 [debug] QUERY OK source="media_profiles" db=1.2ms queue=0.1ms idle=12.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] 05:57:21.194 [info] Sent 200 in 29ms 05:57:21.664 [info] GET /sources/37/media/2027490 05:57:21.665 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2027490", "source_id" => "37"} Pipelines: [:browser] 05:57:21.668 [debug] QUERY OK source="media_items" db=0.9ms queue=0.2ms idle=493.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" = ?) [2027490] 05:57:21.671 [debug] QUERY OK source="tasks" db=1.0ms queue=0.2ms idle=493.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" [2027490] 05:57:21.671 [debug] QUERY OK source="sources" db=1.0ms queue=0.2ms idle=492.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:57:21.673 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=491.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:21.675 [debug] QUERY OK source="settings" db=0.7ms idle=487.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:21.677 [debug] QUERY OK source="settings" db=0.5ms queue=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 [] 05:57:21.681 [debug] QUERY OK source="media_profiles" db=0.9ms queue=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] 05:57:21.688 [info] Sent 200 in 23ms 05:57:21.979 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "An overview of the worst tech predictions in recent history.\n\n💬 Topics:\n- iPhones will fail — Steve Ballmer\n- Spam will be solved — Bill Gates\n- No home computers — Ken Olsen\n- The internet will collapse — Robert Metcalfe\n- The internet does not matter — Paul Krugman\n- Tablet PC dominance — Bill Gates\n- Music subscriptions dead — Steve Jobs\n\n🥇 Join the community - https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join", "duration" => 506, "filename" => "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e020200_The worst tech prediction....mp4", "id" => "C7yod85fqCs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=C7yod85fqCs", "playlist_index" => 10, "timestamp" => 1770026417, "title" => "The worst tech prediction...", "upload_date" => "20260202"} 05:57:21.981 [debug] QUERY OK source="sources" db=1.1ms queue=0.2ms idle=306.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [57] 05:57:21.983 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=307.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:57:21.988 [debug] QUERY OK source="media_items" db=3.5ms queue=0.2ms idle=306.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-02 10:00:17Z], 57] 05:57:21.997 [debug] QUERY OK source="media_items" db=6.3ms queue=0.1ms idle=308.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" ["An overview of the worst tech predictions in recent history.\n\n💬 Topics:\n- iPhones will fail — Steve Ballmer\n- Spam will be solved — Bill Gates\n- No home computers — Ken Olsen\n- The internet will collapse — Robert Metcalfe\n- The internet does not matter — Paul Krugman\n- Tablet PC dominance — Bill Gates\n- Music subscriptions dead — Steve Jobs\n\n🥇 Join the community - https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join", "The worst tech prediction...", "28c31f86-8c25-4d86-8701-3e4a681fd5cf", "C7yod85fqCs", 506, false, "https://www.youtube.com/watch?v=C7yod85fqCs", 10, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e020200_The worst tech prediction....mp4", false, false, false, 57, [], 98, ~U[2026-02-02 10:00:17Z], ~U[2026-03-01 11:57:21Z], ~U[2026-03-01 11:57:21Z], "An overview of the worst tech predictions in recent history.\n\n💬 Topics:\n- iPhones will fail — Steve Ballmer\n- Spam will be solved — Bill Gates\n- No home computers — Ken Olsen\n- The internet will collapse — Robert Metcalfe\n- The internet does not matter — Paul Krugman\n- Tablet PC dominance — Bill Gates\n- Music subscriptions dead — Steve Jobs\n\n🥇 Join the community - https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join", "The worst tech prediction...", "C7yod85fqCs", 506, false, "https://www.youtube.com/watch?v=C7yod85fqCs", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e020200_The worst tech prediction....mp4", false, 57, ~U[2026-02-02 10:00:17Z]] 05:57:21.999 [debug] QUERY OK source="sources" db=1.5ms queue=0.4ms 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" = ?) [57] 05:57:22.002 [debug] QUERY OK source="media_profiles" db=1.8ms queue=0.4ms idle=18.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] 05:57:22.005 [debug] QUERY OK source="media_items" db=1.6ms queue=0.1ms idle=20.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 [2170354] 05:57:22.006 [debug] Current batch of media processed. Will check again in 1000ms 05:57:22.165 [info] GET /sources/46/media/1997905 05:57:22.165 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1997905", "source_id" => "46"} Pipelines: [:browser] 05:57:22.167 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=178.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" = ?) [1997905] 05:57:22.169 [debug] QUERY OK source="tasks" db=0.5ms queue=0.1ms idle=172.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" [1997905] 05:57:22.170 [debug] QUERY OK source="sources" db=1.2ms idle=169.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:57:22.172 [debug] QUERY OK source="settings" db=0.5ms idle=169.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:22.173 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=167.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:22.175 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=7.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:22.178 [debug] QUERY OK source="media_profiles" db=0.6ms 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] 05:57:22.183 [info] Sent 200 in 17ms 05:57:22.666 [info] GET /sources/37/media/2321384/edit 05:57:22.666 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2321384", "source_id" => "37"} Pipelines: [:browser] 05:57:22.668 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=496.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" = ?) [2321384] 05:57:22.670 [debug] QUERY OK source="settings" db=0.4ms queue=0.2ms idle=497.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:22.671 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=497.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:22.673 [debug] QUERY OK source="settings" db=0.8ms queue=0.1ms idle=497.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:22.676 [info] Sent 200 in 10ms 05:57:23.007 [debug] Current batch of media processed. Will check again in 1000ms 05:57:23.166 [info] GET /sources/57 05:57:23.167 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"delete_files" => "true", "id" => "57"} Pipelines: [:browser] 05:57:23.170 [debug] QUERY OK source="sources" db=1.0ms queue=0.4ms idle=500.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:57:23.172 [debug] QUERY OK source="media_profiles" db=1.2ms queue=0.2ms idle=500.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] 05:57:23.194 [debug] QUERY OK source="tasks" db=20.6ms queue=0.3ms idle=502.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [57, "executing", "available", "scheduled", "retryable"] 05:57:23.196 [debug] QUERY OK source="oban_jobs" db=0.6ms queue=0.2ms idle=521.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" = ?) [187456] 05:57:23.197 [debug] QUERY OK source="settings" db=0.6ms queue=0.2ms idle=238.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:23.199 [debug] QUERY OK source="settings" db=0.7ms queue=0.2ms idle=28.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:23.202 [debug] QUERY OK source="settings" db=0.5ms queue=0.2ms idle=28.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:23.207 [debug] QUERY OK source="sources" db=0.7ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [57] 05:57:23.211 [debug] QUERY OK source="media_items" db=2.5ms queue=0.1ms idle=13.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")))) [57] 05:57:23.216 [debug] QUERY OK source="media_items" db=3.9ms queue=0.1ms idle=14.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [57, 10, 0] 05:57:23.220 [debug] QUERY OK source="sources" db=0.7ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [57] 05:57:23.223 [debug] QUERY OK source="media_items" db=1.2ms queue=0.3ms idle=19.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [57] 05:57:23.226 [debug] QUERY OK source="media_items" db=2.7ms queue=0.2ms idle=15.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 ? [57, 10, 0] 05:57:23.232 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=19.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [57] 05:57:23.237 [debug] QUERY OK source="media_items" db=2.3ms queue=0.1ms idle=17.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [57] 05:57:23.242 [debug] QUERY OK source="media_items" db=3.9ms queue=0.2ms idle=17.1ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [57, 10, 0] 05:57:23.248 [info] Sent 200 in 82ms 05:57:23.668 [info] GET /sources/30/media/2298089/edit 05:57:23.669 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2298089", "source_id" => "30"} Pipelines: [:browser] 05:57:23.671 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=447.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" = ?) [2298089] 05:57:23.673 [debug] QUERY OK source="settings" db=0.5ms queue=0.2ms idle=445.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:23.674 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=440.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:23.676 [debug] QUERY OK source="settings" db=0.4ms queue=0.2ms idle=439.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:23.681 [info] Sent 200 in 12ms 05:57:24.008 [debug] Current batch of media processed. Will check again in 1000ms 05:57:24.169 [info] GET /sources/37/media/2321384 05:57:24.169 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2321384", "source_id" => "37"} Pipelines: [:browser] 05:57:24.172 [debug] QUERY OK source="media_items" db=1.2ms queue=0.5ms idle=499.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" = ?) [2321384] 05:57:24.175 [debug] QUERY OK source="tasks" db=1.4ms queue=0.1ms idle=501.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" [2321384] 05:57:24.176 [debug] QUERY OK source="sources" db=1.9ms queue=0.1ms idle=500.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] 05:57:24.180 [debug] QUERY OK source="oban_jobs" db=2.1ms queue=0.1ms idle=501.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 (?,?)) [174046, 177078] 05:57:24.182 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=216.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:24.184 [debug] QUERY OK source="settings" db=1.1ms queue=0.2ms idle=10.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:24.187 [debug] QUERY OK source="settings" db=1.0ms queue=0.1ms idle=10.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:24.191 [debug] QUERY OK source="media_profiles" db=1.3ms queue=0.2ms idle=13.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] 05:57:24.201 [info] Sent 200 in 31ms 05:57:24.671 [info] GET /sources/30/media/2298089 05:57:24.672 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2298089", "source_id" => "30"} Pipelines: [:browser] 05:57:24.676 [debug] QUERY OK source="media_items" db=1.9ms queue=0.4ms idle=493.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" = ?) [2298089] 05:57:24.681 [debug] QUERY OK source="sources" db=1.9ms queue=0.2ms idle=495.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:57:24.686 [debug] QUERY OK source="tasks" db=7.3ms queue=0.3ms idle=496.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" [2298089] 05:57:24.690 [debug] QUERY OK source="oban_jobs" db=2.3ms queue=0.1ms idle=500.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 (?,?)) [168226, 170928] 05:57:24.693 [debug] QUERY OK source="settings" db=0.9ms queue=0.2ms idle=500.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:24.694 [debug] QUERY OK source="settings" db=0.8ms queue=0.2ms idle=17.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:24.697 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=15.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:24.701 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.1ms idle=13.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] 05:57:24.713 [info] Sent 200 in 42ms 05:57:25.010 [debug] Current batch of media processed. Will check again in 1000ms 05:57:25.171 [info] GET /sources/55/media/2378747/edit 05:57:25.172 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2378747", "source_id" => "55"} Pipelines: [:browser] 05:57:25.175 [debug] QUERY OK source="media_items" db=1.3ms queue=0.4ms idle=481.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] 05:57:25.178 [debug] QUERY OK source="settings" db=0.9ms queue=0.4ms 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 [] 05:57:25.180 [debug] QUERY OK source="settings" db=0.6ms queue=0.2ms idle=482.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:25.183 [debug] QUERY OK source="settings" db=0.8ms queue=0.2ms 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 [] 05:57:25.191 [info] Sent 200 in 19ms 05:57:25.670 [info] GET /sources/57/sync_files_on_disk 05:57:25.672 [debug] QUERY OK source="settings" db=0.8ms queue=0.1ms idle=698.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:25.673 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=497.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:25.673 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 05:57:25.674 [error] #PID<0.166519.0> running PinchflatWeb.Endpoint (connection #PID<0.166488.0>, stream id 13) 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.166488.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}, 52922}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.166519.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: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.182"}, {"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", "GJi1tcUZAoP4QVEAUtSB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.166488.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}, 52922}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/57/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.166488.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}, 52922}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.166519.0>, params: %{}, path_info: ["sources", "57", "sync_files_on_disk"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], (truncated) 05:57:26.012 [debug] Current batch of media processed. Will check again in 1000ms 05:57:26.175 [info] GET /sources/30/media/2337310/edit 05:57:26.176 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2337310", "source_id" => "30"} Pipelines: [:browser] 05:57:26.179 [debug] QUERY OK source="media_items" db=1.3ms queue=0.2ms idle=997.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" = ?) [2337310] 05:57:26.182 [debug] QUERY OK source="settings" db=0.8ms queue=0.3ms 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 [] 05:57:26.184 [debug] QUERY OK source="settings" db=0.7ms queue=0.2ms idle=510.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:26.188 [debug] QUERY OK source="settings" db=1.6ms queue=0.3ms idle=513.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:26.196 [info] Sent 200 in 20ms 05:57:26.674 [info] GET /sources/57/force_redownload 05:57:26.677 [debug] QUERY OK source="settings" db=0.8ms queue=0.1ms idle=694.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:26.679 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=499.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:26.679 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 05:57:26.681 [error] #PID<0.166521.0> running PinchflatWeb.Endpoint (connection #PID<0.166488.0>, stream id 15) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/57/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/57/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.166488.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52922}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.166521.0>, params: %{}, path_info: ["sources", "57", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/57/force_redownload", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJi1tgDytjKuMJYAUtUB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.166488.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52922}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/57/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.166488.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52922}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.166521.0>, params: %{}, path_info: ["sources", "57", "force_redownload"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_sess (truncated) 05:57:26.740 [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/42/96/4296e2237b05fbc448ba7458abc3038c5c8dc939065fa30e3cfc011191d84218.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. 05:57:26.741 [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" 05:57:26.742 [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" 05:57:26.746 [info] {"args":{"id":1301395},"id":189153,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":8023198,"event":"job:stop","queue_time":26715472,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:57:26.760 [info] {"args":{"id":1301398},"id":189155,"meta":{},"system_time":1772366246759676593,"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"]} 05:57:26.764 [debug] QUERY OK source="media_items" db=2.4ms queue=0.1ms idle=572.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] 05:57:26.765 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:57:26.769 [debug] QUERY OK source="sources" db=2.3ms queue=0.1ms idle=89.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:57:26.772 [debug] QUERY OK source="media_profiles" db=1.7ms queue=0.2ms idle=91.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] 05:57:26.777 [debug] QUERY OK source="media_items" db=2.8ms queue=0.2ms idle=28.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] 05:57:26.782 [debug] QUERY OK source="media_metadata" db=0.9ms idle=21.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] 05:57:26.784 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.2ms 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] 05:57:26.788 [debug] QUERY OK source="settings" db=1.1ms queue=0.2ms idle=17.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:26.790 [debug] QUERY OK source="settings" db=0.8ms queue=0.2ms idle=16.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:26.792 [debug] Running yt-dlp command for action: get_downloadable_status 05:57:26.795 [debug] QUERY OK source="settings" db=0.8ms queue=0.1ms 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 [] 05:57:26.797 [debug] QUERY OK source="settings" db=0.8ms queue=0.2ms idle=14.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:26.799 [debug] QUERY OK source="settings" db=0.9ms queue=0.3ms idle=13.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:26.800 [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/15/f5/15f5896374788c03cfcce63782769e5775cd8baf6577f08173297debad76359e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:57:27.014 [debug] Current batch of media processed. Will check again in 1000ms 05:57:27.147 [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/ad/c8/adc8e931b89aa944f48a4cb638ca1db0b150512fdd59ebcca553ca58c358c4b1.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. 05:57:27.147 [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" 05:57:27.148 [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" 05:57:27.152 [info] {"args":{"id":1301397},"id":189154,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":8276502,"event":"job:stop","queue_time":26868504,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:57:27.167 [info] {"args":{"id":1301399},"id":189156,"meta":{},"system_time":1772366247166348440,"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"]} 05:57:27.170 [debug] QUERY OK source="media_items" db=2.1ms queue=0.2ms idle=370.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" = ?) [1301399] 05:57:27.171 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:57:27.175 [debug] QUERY OK source="sources" db=1.8ms queue=0.4ms idle=373.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:57:27.176 [info] GET /sources/57/force_index 05:57:27.179 [debug] QUERY OK source="media_profiles" db=2.3ms queue=0.3ms idle=158.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] 05:57:27.180 [debug] QUERY OK source="settings" db=1.9ms queue=0.2ms idle=25.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:27.185 [debug] QUERY OK source="media_items" db=3.8ms queue=0.4ms idle=14.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1301399] 05:57:27.184 [debug] QUERY OK source="settings" db=3.5ms queue=0.1ms idle=10.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:27.185 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 05:57:27.190 [debug] QUERY OK source="media_metadata" db=1.6ms queue=0.1ms idle=13.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" = ?) [1301399] 05:57:27.193 [debug] QUERY OK source="media_profiles" db=1.7ms queue=0.1ms idle=12.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] 05:57:27.199 [debug] QUERY OK source="settings" db=1.4ms queue=2.8ms idle=15.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:27.205 [debug] QUERY OK source="settings" db=4.4ms queue=0.3ms 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 [] 05:57:27.187 [error] #PID<0.166526.0> running PinchflatWeb.Endpoint (connection #PID<0.166488.0>, stream id 16) 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.166488.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52922}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.166526.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: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.182"}, {"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", "GJi1th7WGIj0iJgAUtVB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.166488.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52922}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/57/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.166488.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52922}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.166526.0>, params: %{}, path_info: ["sources", "57", "force_index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.S (truncated) 05:57:27.207 [debug] Running yt-dlp command for action: get_downloadable_status 05:57:27.213 [debug] QUERY OK source="settings" db=1.0ms queue=0.1ms idle=27.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:27.215 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=24.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:27.217 [debug] QUERY OK source="settings" db=0.7ms queue=0.2ms idle=23.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:27.218 [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/60/36/60369005a2b0674d156089b2370ffb859c8f1a720f00db2f0240a85a8f41b058.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:57:27.676 [info] GET /sources/57/force_metadata_refresh 05:57:27.680 [debug] QUERY OK source="settings" db=1.6ms queue=0.4ms idle=478.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:27.682 [debug] QUERY OK source="settings" db=1.3ms queue=0.3ms idle=475.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:27.683 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 05:57:27.686 [error] #PID<0.166529.0> running PinchflatWeb.Endpoint (connection #PID<0.166488.0>, stream id 17) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/57/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/57/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.166488.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52922}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 17, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.166529.0>, params: %{}, path_info: ["sources", "57", "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: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/57/force_metadata_refresh", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJi1tjylDMPzFQQAUtWB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.166488.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52922}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 17, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/57/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.166488.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 52922}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 17, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUUdPeW1kRWxtLUY5cGpIcHhDa3BBbUd1.iQyvbvyedFNr6WE878ueM8VJuGXEeFHjbxjmnYDApHg" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.166529.0>, params: %{}, path_info: ["sources", "57", "force_metadata_refresh"], path_params: %{}, port: 80, private: %{ (truncated) 05:57:28.015 [debug] Current batch of media processed. Will check again in 1000ms 05:57:28.177 [info] GET /sources/57/edit 05:57:28.178 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "57"} Pipelines: [:browser] 05:57:28.182 [debug] QUERY OK source="sources" db=1.3ms queue=0.4ms idle=965.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:57:28.186 [debug] QUERY OK source="media_profiles" db=1.1ms queue=1.0ms idle=967.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" [] 05:57:28.189 [debug] QUERY OK source="settings" db=0.7ms queue=0.4ms idle=507.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:28.191 [debug] QUERY OK source="settings" db=0.8ms queue=0.3ms idle=507.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:28.195 [debug] QUERY OK source="settings" db=1.0ms queue=0.3ms idle=169.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:28.232 [info] Sent 200 in 54ms 05:57:29.016 [debug] Current batch of media processed. Will check again in 1000ms 05:57:30.017 [debug] Current batch of media processed. Will check again in 1000ms 05:57:31.019 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A quick overview of PostgresSQL\n\n💬 Topics:\n- ACID Transactions;\n- Schema Constraints;\n- Rich Data Types;\n- Row Level Security;\n- Real-Time Notifications;\n- Full-Text Search;\n- Foreign Data Wrappers.\n\n🥇 Join the community - https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join", "duration" => 597, "filename" => "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e013000_Postgres can replace your entire stack....mp4", "id" => "1qs9bQ0MlpQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=1qs9bQ0MlpQ", "playlist_index" => 11, "timestamp" => 1769788804, "title" => "Postgres can replace your entire stack...", "upload_date" => "20260130"} 05:57:31.020 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=1504.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [57] 05:57:31.022 [debug] QUERY OK source="sources" db=0.6ms queue=0.2ms idle=1506.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:57:31.025 [debug] QUERY OK source="media_items" db=2.2ms queue=0.1ms idle=1507.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-30 16:00:04Z], 57] 05:57:31.033 [debug] QUERY OK source="media_items" db=5.8ms idle=1511.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 quick overview of PostgresSQL\n\n💬 Topics:\n- ACID Transactions;\n- Schema Constraints;\n- Rich Data Types;\n- Row Level Security;\n- Real-Time Notifications;\n- Full-Text Search;\n- Foreign Data Wrappers.\n\n🥇 Join the community - https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join", "Postgres can replace your entire stack...", "ed9f88d4-71a5-4a99-b61f-f542b738ccdf", "1qs9bQ0MlpQ", 597, false, "https://www.youtube.com/watch?v=1qs9bQ0MlpQ", 11, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e013000_Postgres can replace your entire stack....mp4", false, false, false, 57, [], 98, ~U[2026-01-30 16:00:04Z], ~U[2026-03-01 11:57:31Z], ~U[2026-03-01 11:57:31Z], "A quick overview of PostgresSQL\n\n💬 Topics:\n- ACID Transactions;\n- Schema Constraints;\n- Rich Data Types;\n- Row Level Security;\n- Real-Time Notifications;\n- Full-Text Search;\n- Foreign Data Wrappers.\n\n🥇 Join the community - https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join", "Postgres can replace your entire stack...", "1qs9bQ0MlpQ", 597, false, "https://www.youtube.com/watch?v=1qs9bQ0MlpQ", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e013000_Postgres can replace your entire stack....mp4", false, 57, ~U[2026-01-30 16:00:04Z]] 05:57:31.034 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=997.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:57:31.037 [debug] QUERY OK source="media_profiles" db=1.4ms queue=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] 05:57:31.039 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=15.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 [2161655] 05:57:31.039 [debug] Current batch of media processed. Will check again in 1000ms 05:57:32.040 [debug] Current batch of media processed. Will check again in 1000ms 05:57:33.041 [debug] Current batch of media processed. Will check again in 1000ms 05:57:34.042 [debug] Current batch of media processed. Will check again in 1000ms 05:57:34.319 [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/15/f5/15f5896374788c03cfcce63782769e5775cd8baf6577f08173297debad76359e.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. 05:57:34.319 [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" 05:57:34.320 [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" 05:57:34.322 [info] {"args":{"id":1301398},"id":189155,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7560942,"event":"job:stop","queue_time":34752527,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:57:34.331 [info] {"args":{"id":1301400},"id":189157,"meta":{},"system_time":1772366254330946811,"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"]} 05:57:34.332 [debug] QUERY OK source="media_items" db=0.8ms idle=1816.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] 05:57:34.333 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:57:34.334 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=1283.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] 05:57:34.336 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.1ms idle=281.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] 05:57:34.338 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=15.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] 05:57:34.341 [debug] QUERY OK source="media_metadata" db=0.3ms idle=9.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] 05:57:34.342 [debug] QUERY OK source="media_profiles" db=0.5ms queue=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] 05:57:34.343 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms 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 [] 05:57:34.344 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms 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 [] 05:57:34.346 [debug] Running yt-dlp command for action: get_downloadable_status 05:57:34.349 [debug] QUERY OK source="settings" db=0.4ms idle=10.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:34.350 [debug] QUERY OK source="settings" db=0.6ms idle=8.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:34.351 [debug] QUERY OK source="settings" db=0.6ms idle=8.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:34.352 [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/9e/b1/9eb12996cce96b4399892843213292a3c8e2f5b48c002d5eee6b59cee064d6dd.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:57:34.760 [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/60/36/60369005a2b0674d156089b2370ffb859c8f1a720f00db2f0240a85a8f41b058.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. 05:57:34.760 [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" 05:57:34.761 [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" 05:57:34.763 [info] {"args":{"id":1301399},"id":189156,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7595354,"event":"job:stop","queue_time":35159512,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:57:34.774 [info] {"args":{"id":2186150},"id":189159,"meta":{},"system_time":1772366254773752814,"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"]} 05:57:34.776 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=425.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" = ?) [2186150] 05:57:34.777 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:57:34.780 [debug] QUERY OK source="sources" db=1.8ms queue=0.2ms idle=427.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:57:34.782 [debug] QUERY OK source="media_profiles" db=1.3ms queue=0.2ms 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] 05:57:34.786 [debug] QUERY OK source="media_items" db=1.7ms queue=0.1ms idle=20.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 [2186150] 05:57:34.789 [debug] QUERY OK source="media_metadata" db=0.5ms queue=0.1ms idle=15.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" = ?) [2186150] 05:57:34.791 [debug] QUERY OK source="media_profiles" db=1.1ms queue=0.2ms idle=13.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] 05:57:34.794 [debug] QUERY OK source="settings" db=0.6ms queue=0.2ms 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 [] 05:57:34.795 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=11.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:34.797 [debug] Running yt-dlp command for action: get_downloadable_status 05:57:34.801 [debug] QUERY OK source="settings" db=1.0ms queue=0.1ms idle=13.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:34.803 [debug] QUERY OK source="settings" db=1.1ms queue=0.1ms idle=12.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:34.805 [debug] QUERY OK source="settings" db=1.1ms queue=0.2ms idle=12.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:34.806 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=E7dA8htDvk0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/44/c9/44c9e976742b67763fa185dd6b5710f078ff7d495df9a1d48696af5d80029c4c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:57:35.043 [debug] Current batch of media processed. Will check again in 1000ms 05:57:36.044 [debug] Current batch of media processed. Will check again in 1000ms 05:57:37.045 [debug] Current batch of media processed. Will check again in 1000ms 05:57:38.047 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A quick review of the AI narative at Davos 2026.\n\n💬 Topics:\n- AI hype versus reality;\n- Coding agents limitations;\n- AGI is not possible;\n- Transformer architectural has limitations;\n- AI economics don't work.\n\n🥇 Join the community - https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join", "duration" => 482, "filename" => "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e012600_AI will replace developers in 6 months. Again....mp4", "id" => "ZV5Fx4qMDgA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ZV5Fx4qMDgA", "playlist_index" => 12, "timestamp" => 1769432463, "title" => "AI will replace developers in 6 months. Again...", "upload_date" => "20260126"} 05:57:38.049 [debug] QUERY OK source="sources" db=1.2ms queue=0.2ms idle=1533.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [57] 05:57:38.051 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms idle=1535.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:57:38.055 [debug] QUERY OK source="media_items" db=2.1ms queue=0.2ms idle=1537.5ms 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 13:01:03Z], 57] 05:57:38.061 [debug] QUERY OK source="media_items" db=3.8ms queue=0.2ms idle=1541.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 quick review of the AI narative at Davos 2026.\n\n💬 Topics:\n- AI hype versus reality;\n- Coding agents limitations;\n- AGI is not possible;\n- Transformer architectural has limitations;\n- AI economics don't work.\n\n🥇 Join the community - https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join", "AI will replace developers in 6 months. Again...", "7cbb4757-87e6-4408-a432-b2b48372040a", "ZV5Fx4qMDgA", 482, false, "https://www.youtube.com/watch?v=ZV5Fx4qMDgA", 12, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e012600_AI will replace developers in 6 months. Again....mp4", false, false, false, 57, [], 98, ~U[2026-01-26 13:01:03Z], ~U[2026-03-01 11:57:38Z], ~U[2026-03-01 11:57:38Z], "A quick review of the AI narative at Davos 2026.\n\n💬 Topics:\n- AI hype versus reality;\n- Coding agents limitations;\n- AGI is not possible;\n- Transformer architectural has limitations;\n- AI economics don't work.\n\n🥇 Join the community - https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join", "AI will replace developers in 6 months. Again...", "ZV5Fx4qMDgA", 482, false, "https://www.youtube.com/watch?v=ZV5Fx4qMDgA", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e012600_AI will replace developers in 6 months. Again....mp4", false, 57, ~U[2026-01-26 13:01:03Z]] 05:57:38.063 [debug] QUERY OK source="sources" db=1.2ms queue=0.2ms idle=996.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:57:38.065 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.3ms idle=14.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] 05:57:38.069 [debug] QUERY OK source="media_items" db=2.7ms queue=0.2ms 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 [2161656] 05:57:38.070 [debug] Current batch of media processed. Will check again in 1000ms 05:57:39.070 [debug] Current batch of media processed. Will check again in 1000ms 05:57:40.071 [debug] Current batch of media processed. Will check again in 1000ms 05:57:41.072 [debug] Current batch of media processed. Will check again in 1000ms 05:57:41.411 [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/9e/b1/9eb12996cce96b4399892843213292a3c8e2f5b48c002d5eee6b59cee064d6dd.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. 05:57:41.411 [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" 05:57:41.412 [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" 05:57:41.414 [info] {"args":{"id":1301400},"id":189157,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7081864,"event":"job:stop","queue_time":42328389,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:57:41.803 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=E7dA8htDvk0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/44/c9/44c9e976742b67763fa185dd6b5710f078ff7d495df9a1d48696af5d80029c4c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] E7dA8htDvk0: This video is available to this channel's members on level: Senior (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 05:57:41.804 [error] yt-dlp download error for media item #2186150: "ERROR: [youtube] E7dA8htDvk0: This video is available to this channel's members on level: Senior (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 05:57:41.804 [error] yt-dlp download will not be retried: "ERROR: [youtube] E7dA8htDvk0: This video is available to this channel's members on level: Senior (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 05:57:41.806 [info] {"args":{"id":2186150},"id":189159,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7031400,"event":"job:stop","queue_time":22770450,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:57:41.817 [info] {"source":"oban","duration":49774,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:57:42.073 [debug] Current batch of media processed. Will check again in 1000ms 05:57:43.074 [debug] Current batch of media processed. Will check again in 1000ms 05:57:44.076 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A quick overview of Astro 6 and the new Cloudflare acquisition.\n\n💬 Topics:\n- What is Astro?\n- NextJS alternatives;\n- Astro 6 features;\n- The future of web development.\n\n🥇 Join the community - https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join", "duration" => 485, "filename" => "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e012300_Astro just hit the jackpot.mp4", "id" => "QcCV5NZe-QQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=QcCV5NZe-QQ", "playlist_index" => 13, "timestamp" => 1769173247, "title" => "Astro just hit the jackpot", "upload_date" => "20260123"} 05:57:44.078 [debug] QUERY OK source="sources" db=0.8ms queue=0.2ms idle=986.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 (?)) [57] 05:57:44.079 [debug] QUERY OK source="sources" db=0.6ms queue=0.2ms idle=564.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:57:44.082 [debug] QUERY OK source="media_items" db=1.8ms queue=0.2ms idle=565.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-23 13:00:47Z], 57] 05:57:44.088 [debug] QUERY OK source="media_items" db=4.6ms queue=0.1ms idle=568.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" ["A quick overview of Astro 6 and the new Cloudflare acquisition.\n\n💬 Topics:\n- What is Astro?\n- NextJS alternatives;\n- Astro 6 features;\n- The future of web development.\n\n🥇 Join the community - https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join", "Astro just hit the jackpot", "efdb1cc3-d097-46c8-8410-d6be8dfbc274", "QcCV5NZe-QQ", 485, false, "https://www.youtube.com/watch?v=QcCV5NZe-QQ", 13, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e012300_Astro just hit the jackpot.mp4", false, false, false, 57, [], 98, ~U[2026-01-23 13:00:47Z], ~U[2026-03-01 11:57:44Z], ~U[2026-03-01 11:57:44Z], "A quick overview of Astro 6 and the new Cloudflare acquisition.\n\n💬 Topics:\n- What is Astro?\n- NextJS alternatives;\n- Astro 6 features;\n- The future of web development.\n\n🥇 Join the community - https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join", "Astro just hit the jackpot", "QcCV5NZe-QQ", 485, false, "https://www.youtube.com/watch?v=QcCV5NZe-QQ", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e012300_Astro just hit the jackpot.mp4", false, 57, ~U[2026-01-23 13:00:47Z]] 05:57:44.090 [debug] QUERY OK source="sources" db=1.0ms idle=574.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:57:44.092 [debug] QUERY OK source="media_profiles" db=1.5ms queue=0.1ms idle=12.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] 05:57:44.095 [debug] QUERY OK source="media_items" db=1.6ms queue=0.2ms idle=11.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 [2161657] 05:57:44.095 [debug] Current batch of media processed. Will check again in 1000ms 05:57:45.096 [debug] Current batch of media processed. Will check again in 1000ms 05:57:46.097 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "A quick look at the newly created Cursor Browser. 3 million lines of Rust code that don't do anything.", "duration" => 209, "filename" => "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e012200_Cursor AI built a browser that doesn't work....NA", "id" => "T-IPRmrwemM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=T-IPRmrwemM", "playlist_index" => 14, "timestamp" => 1769098125, "title" => "Cursor AI built a browser that doesn't work...", "upload_date" => "20260122"} 05:57:46.098 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=998.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [57] 05:57:46.099 [debug] QUERY OK source="sources" db=0.4ms idle=584.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" = ?) [57] 05:57:46.102 [debug] QUERY OK source="media_items" db=1.5ms queue=0.1ms idle=585.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-22 16:08:45Z], 57] 05:57:46.105 [debug] QUERY OK source="media_items" db=2.1ms idle=587.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 quick look at the newly created Cursor Browser. 3 million lines of Rust code that don't do anything.", "Cursor AI built a browser that doesn't work...", "25e93b18-786c-4a67-a48d-70d1a98c9bf0", "T-IPRmrwemM", 209, false, "https://www.youtube.com/watch?v=T-IPRmrwemM", 14, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e012200_Cursor AI built a browser that doesn't work....NA", false, false, false, 57, [], 98, ~U[2026-01-22 16:08:45Z], ~U[2026-03-01 11:57:46Z], ~U[2026-03-01 11:57:46Z], "A quick look at the newly created Cursor Browser. 3 million lines of Rust code that don't do anything.", "Cursor AI built a browser that doesn't work...", "T-IPRmrwemM", 209, false, "https://www.youtube.com/watch?v=T-IPRmrwemM", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e012200_Cursor AI built a browser that doesn't work....NA", false, 57, ~U[2026-01-22 16:08:45Z]] 05:57:46.106 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=6.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [57] 05:57:46.107 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=7.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:57:46.109 [debug] QUERY OK source="media_items" db=0.9ms idle=6.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [2161658] 05:57:46.109 [info] Kicking off download for media item #2161658 (T-IPRmrwemM) 05:57:46.118 [debug] QUERY OK source="tasks" db=1.1ms queue=0.1ms idle=11.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189160, 2161658, ~U[2026-03-01 11:57:46Z], ~U[2026-03-01 11:57:46Z]] 05:57:46.119 [debug] Current batch of media processed. Will check again in 1000ms 05:57:46.125 [info] {"args":{"id":2161658},"id":189160,"meta":{},"system_time":1772366266125260857,"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"]} 05:57:46.126 [debug] QUERY OK source="media_items" db=0.5ms idle=16.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" = ?) [2161658] 05:57:46.126 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:57:46.128 [debug] QUERY OK source="sources" db=0.9ms 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" = ?) [57] 05:57:46.129 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.1ms idle=11.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] 05:57:46.131 [debug] QUERY OK source="media_items" db=0.8ms idle=11.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 [2161658] 05:57:46.133 [debug] QUERY OK source="media_metadata" db=0.2ms idle=8.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" = ?) [2161658] 05:57:46.134 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:57:46.135 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:57:46.136 [debug] QUERY OK source="settings" db=0.3ms idle=6.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:46.137 [debug] Running yt-dlp command for action: get_downloadable_status 05:57:46.138 [debug] QUERY OK source="settings" db=0.3ms 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 [] 05:57:46.139 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms 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 [] 05:57:46.140 [debug] QUERY OK source="settings" db=0.6ms 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 [] 05:57:46.140 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=T-IPRmrwemM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/9c/35/9c35a0df077cff5f563fac430a8ce215f370bcbd19b3b0ceb486cb9d7e53ed63.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:57:47.119 [debug] Current batch of media processed. Will check again in 1000ms 05:57:48.120 [debug] Current batch of media processed. Will check again in 1000ms 05:57:49.121 [debug] Current batch of media processed. Will check again in 1000ms 05:57:50.122 [debug] Current batch of media processed. Will check again in 1000ms 05:57:51.123 [debug] Current batch of media processed. Will check again in 1000ms 05:57:52.125 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "An in depth look at Ruby and Ruby on Rails.\n\n💬 Topics:\n- Readability-first language design;\n- Dynamic typing, runtime checks;\n- Optional static typing layer;\n- Convention-over-configuration framework;\n- Integrated full-stack MVC;\n- Server-rendered HTML workflows;\n- Productivity over raw performance.", "duration" => 702, "filename" => "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e012100_The language behind billion dollar startups.mp4", "id" => "6f1_SlJA2ZM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=6f1_SlJA2ZM", "playlist_index" => 15, "timestamp" => 1769014808, "title" => "The language behind billion dollar startups", "upload_date" => "20260121"} 05:57:52.126 [debug] QUERY OK source="sources" db=0.4ms idle=611.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [57] 05:57:52.127 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=612.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:57:52.129 [debug] QUERY OK source="media_items" db=1.0ms idle=613.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-21 17:00:08Z], 57] 05:57:52.132 [debug] QUERY OK source="media_items" db=2.2ms idle=615.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" ["An in depth look at Ruby and Ruby on Rails.\n\n💬 Topics:\n- Readability-first language design;\n- Dynamic typing, runtime checks;\n- Optional static typing layer;\n- Convention-over-configuration framework;\n- Integrated full-stack MVC;\n- Server-rendered HTML workflows;\n- Productivity over raw performance.", "The language behind billion dollar startups", "754e6a92-5a66-4962-9e07-5c58c683e9d2", "6f1_SlJA2ZM", 702, false, "https://www.youtube.com/watch?v=6f1_SlJA2ZM", 15, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e012100_The language behind billion dollar startups.mp4", false, false, false, 57, [], 98, ~U[2026-01-21 17:00:08Z], ~U[2026-03-01 11:57:52Z], ~U[2026-03-01 11:57:52Z], "An in depth look at Ruby and Ruby on Rails.\n\n💬 Topics:\n- Readability-first language design;\n- Dynamic typing, runtime checks;\n- Optional static typing layer;\n- Convention-over-configuration framework;\n- Integrated full-stack MVC;\n- Server-rendered HTML workflows;\n- Productivity over raw performance.", "The language behind billion dollar startups", "6f1_SlJA2ZM", 702, false, "https://www.youtube.com/watch?v=6f1_SlJA2ZM", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e012100_The language behind billion dollar startups.mp4", false, 57, ~U[2026-01-21 17:00:08Z]] 05:57:52.133 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=9.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [57] 05:57:52.134 [debug] QUERY OK source="media_profiles" db=0.5ms queue=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] 05:57:52.136 [debug] QUERY OK source="media_items" db=0.6ms 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 [2161659] 05:57:52.136 [debug] Current batch of media processed. Will check again in 1000ms 05:57:52.147 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=T-IPRmrwemM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/9c/35/9c35a0df077cff5f563fac430a8ce215f370bcbd19b3b0ceb486cb9d7e53ed63.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] T-IPRmrwemM: This video is available to this channel's members on level: Senior (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 05:57:52.147 [error] yt-dlp download error for media item #2161658: "ERROR: [youtube] T-IPRmrwemM: This video is available to this channel's members on level: Senior (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 05:57:52.147 [error] yt-dlp download will not be retried: "ERROR: [youtube] T-IPRmrwemM: This video is available to this channel's members on level: Senior (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 05:57:52.149 [info] {"args":{"id":2161658},"id":189160,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":6022671,"event":"job:stop","queue_time":123398,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:57:53.137 [debug] Current batch of media processed. Will check again in 1000ms 05:57:54.138 [debug] Current batch of media processed. Will check again in 1000ms 05:57:55.139 [debug] Current batch of media processed. Will check again in 1000ms 05:57:55.456 [info] GET /sources/30/media/2100350 05:57:55.456 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2100350", "source_id" => "30"} Pipelines: [:browser] 05:57:55.458 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=1942.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" = ?) [2100350] 05:57:55.459 [debug] QUERY OK source="tasks" db=0.6ms queue=0.1ms idle=1944.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" [2100350] 05:57:55.460 [debug] QUERY OK source="sources" db=1.0ms idle=1944.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:57:55.461 [debug] QUERY OK source="settings" db=0.3ms idle=1331.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:55.462 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=329.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:55.464 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms 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 [] 05:57:55.466 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 05:57:55.470 [info] Sent 200 in 13ms 05:57:55.821 [info] GET /sources/46/media/2117716/edit 05:57:55.822 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2117716", "source_id" => "46"} Pipelines: [:browser] 05:57:55.823 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=362.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" = ?) [2117716] 05:57:55.824 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=362.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:55.825 [debug] QUERY OK source="settings" db=0.2ms idle=362.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:55.826 [debug] QUERY OK source="settings" db=0.2ms idle=362.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:55.829 [info] Sent 200 in 7ms 05:57:56.140 [debug] Current batch of media processed. Will check again in 1000ms 05:57:56.322 [info] GET /sources/46/media/2377781/edit 05:57:56.322 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2377781", "source_id" => "46"} Pipelines: [:browser] 05:57:56.323 [debug] QUERY OK source="media_items" db=0.3ms idle=499.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" = ?) [2377781] 05:57:56.324 [debug] QUERY OK source="settings" db=0.2ms idle=499.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:56.324 [debug] QUERY OK source="settings" db=0.1ms idle=498.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:56.325 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=498.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:56.328 [info] Sent 200 in 6ms 05:57:56.823 [info] GET /sources/30/media/2344980/edit 05:57:56.823 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2344980", "source_id" => "30"} Pipelines: [:browser] 05:57:56.824 [debug] QUERY OK source="media_items" db=0.4ms idle=688.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" = ?) [2344980] 05:57:56.825 [debug] QUERY OK source="settings" db=0.2ms idle=502.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:56.826 [debug] QUERY OK source="settings" db=0.2ms idle=501.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:56.827 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=502.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:56.829 [info] Sent 200 in 6ms 05:57:57.141 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "An honest review of the Codex CLI coding agent.\n\n💬 Topics:\n- Working with coding agents;\n- Codex and Chat GPT review;\n- Building an app with Codex;\n- Are programmers obsolete?\n- The future of software development.", "duration" => 568, "filename" => "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e011900_I actually tried AI coding and it's worse than I thought....mp4", "id" => "DLwyGjFsPPM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=DLwyGjFsPPM", "playlist_index" => 16, "timestamp" => 1768834968, "title" => "I actually tried AI coding and it's worse than I thought...", "upload_date" => "20260119"} 05:57:57.142 [debug] QUERY OK source="sources" db=0.3ms idle=317.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [57] 05:57:57.143 [debug] QUERY OK source="sources" db=0.3ms idle=317.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] 05:57:57.144 [debug] QUERY OK source="media_items" db=1.1ms idle=317.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-19 15:02:48Z], 57] 05:57:57.155 [debug] QUERY OK source="media_items" db=9.7ms idle=318.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" ["An honest review of the Codex CLI coding agent.\n\n💬 Topics:\n- Working with coding agents;\n- Codex and Chat GPT review;\n- Building an app with Codex;\n- Are programmers obsolete?\n- The future of software development.", "I actually tried AI coding and it's worse than I thought...", "0bff0e2c-eb19-4425-8e10-7b8e60a4e566", "DLwyGjFsPPM", 568, false, "https://www.youtube.com/watch?v=DLwyGjFsPPM", 16, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e011900_I actually tried AI coding and it's worse than I thought....mp4", false, false, false, 57, [], 98, ~U[2026-01-19 15:02:48Z], ~U[2026-03-01 11:57:57Z], ~U[2026-03-01 11:57:57Z], "An honest review of the Codex CLI coding agent.\n\n💬 Topics:\n- Working with coding agents;\n- Codex and Chat GPT review;\n- Building an app with Codex;\n- Are programmers obsolete?\n- The future of software development.", "I actually tried AI coding and it's worse than I thought...", "DLwyGjFsPPM", 568, false, "https://www.youtube.com/watch?v=DLwyGjFsPPM", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e011900_I actually tried AI coding and it's worse than I thought....mp4", false, 57, ~U[2026-01-19 15:02:48Z]] 05:57:57.156 [debug] QUERY OK source="sources" db=0.6ms 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" = ?) [57] 05:57:57.158 [debug] QUERY OK source="media_profiles" db=0.7ms idle=14.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] 05:57:57.159 [debug] QUERY OK source="media_items" db=0.8ms idle=15.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 [2161660] 05:57:57.159 [debug] Current batch of media processed. Will check again in 1000ms 05:57:57.324 [info] GET /sources/30/media/2044121 05:57:57.324 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2044121", "source_id" => "30"} Pipelines: [:browser] 05:57:57.326 [debug] QUERY OK source="media_items" db=0.9ms idle=180.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" = ?) [2044121] 05:57:57.327 [debug] QUERY OK source="tasks" db=0.4ms idle=171.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" [2044121] 05:57:57.327 [debug] QUERY OK source="sources" db=0.6ms idle=170.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:57:57.328 [debug] QUERY OK source="settings" db=0.3ms idle=170.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:57.329 [debug] QUERY OK source="settings" db=0.2ms idle=169.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:57.330 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:57:57.332 [debug] QUERY OK source="media_profiles" db=0.2ms queue=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] 05:57:57.335 [info] Sent 200 in 10ms 05:57:57.825 [info] GET /sources/30/media/2060046 05:57:57.825 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2060046", "source_id" => "30"} Pipelines: [:browser] 05:57:57.826 [debug] QUERY OK source="media_items" db=0.4ms 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" = ?) [2060046] 05:57:57.828 [debug] QUERY OK source="tasks" db=0.2ms idle=498.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" [2060046] 05:57:57.828 [debug] QUERY OK source="sources" db=0.7ms idle=498.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:57:57.829 [debug] QUERY OK source="settings" db=0.3ms idle=498.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:57.830 [debug] QUERY OK source="settings" db=0.2ms idle=497.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:57.831 [debug] QUERY OK source="settings" db=0.5ms 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 [] 05:57:57.834 [debug] QUERY OK source="media_profiles" db=0.4ms queue=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] 05:57:57.837 [info] Sent 200 in 12ms 05:57:58.160 [debug] Current batch of media processed. Will check again in 1000ms 05:57:58.326 [info] GET /sources/53/media/2375741/edit 05:57:58.327 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2375741", "source_id" => "53"} Pipelines: [:browser] 05:57:58.329 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=498.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" = ?) [2375741] 05:57:58.330 [debug] QUERY OK source="settings" db=0.3ms 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 [] 05:57:58.331 [debug] QUERY OK source="settings" db=0.2ms idle=498.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:58.332 [debug] QUERY OK source="settings" db=0.2ms queue=0.2ms 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 [] 05:57:58.335 [info] Sent 200 in 8ms 05:57:58.627 [info] GET /sources/37/media/1994542/edit 05:57:58.628 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1994542", "source_id" => "37"} Pipelines: [:browser] 05:57:58.629 [debug] QUERY OK source="media_items" db=0.6ms idle=489.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" = ?) [1994542] 05:57:58.630 [debug] QUERY OK source="settings" db=0.3ms idle=301.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:58.631 [debug] QUERY OK source="settings" db=0.2ms idle=300.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:58.633 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=301.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:58.635 [info] Sent 200 in 8ms 05:57:58.927 [info] GET /sources/30/media/2108479/edit 05:57:58.928 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2108479", "source_id" => "30"} Pipelines: [:browser] 05:57:58.930 [debug] QUERY OK source="media_items" db=0.7ms queue=0.2ms idle=596.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" = ?) [2108479] 05:57:58.931 [debug] QUERY OK source="settings" db=0.4ms queue=0.2ms idle=301.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:58.932 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=301.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:58.934 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=302.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:58.938 [info] Sent 200 in 10ms 05:57:59.161 [debug] Current batch of media processed. Will check again in 1000ms 05:57:59.229 [info] GET /sources/46/media/1949815 05:57:59.229 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1949815", "source_id" => "46"} Pipelines: [:browser] 05:57:59.231 [debug] QUERY OK source="media_items" db=0.5ms idle=300.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" = ?) [1949815] 05:57:59.232 [debug] QUERY OK source="tasks" db=0.4ms idle=300.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" [1949815] 05:57:59.232 [debug] QUERY OK source="sources" db=0.6ms idle=299.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:57:59.234 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=299.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:59.234 [debug] QUERY OK source="settings" db=0.4ms idle=91.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:59.236 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms 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 [] 05:57:59.238 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 05:57:59.242 [info] Sent 200 in 12ms 05:57:59.531 [info] GET /sources/37/media/1994542 05:57:59.532 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1994542", "source_id" => "37"} Pipelines: [:browser] 05:57:59.533 [debug] QUERY OK source="media_items" db=0.9ms idle=299.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" = ?) [1994542] 05:57:59.535 [debug] QUERY OK source="tasks" db=0.6ms queue=0.1ms idle=301.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" [1994542] 05:57:59.536 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=300.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] 05:57:59.538 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=302.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:59.540 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=301.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:59.542 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=7.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:59.545 [debug] QUERY OK source="media_profiles" db=0.5ms queue=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] 05:57:59.552 [info] Sent 200 in 20ms 05:57:59.831 [info] GET /sources/46/media/2117716 05:57:59.831 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2117716", "source_id" => "46"} Pipelines: [:browser] 05:57:59.833 [debug] QUERY OK source="media_items" db=0.6ms queue=0.2ms idle=295.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" = ?) [2117716] 05:57:59.835 [debug] QUERY OK source="tasks" db=0.5ms queue=0.1ms idle=295.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" [2117716] 05:57:59.836 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=294.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:57:59.837 [debug] QUERY OK source="settings" db=0.4ms idle=294.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:59.838 [debug] QUERY OK source="settings" db=0.4ms idle=292.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:57:59.840 [debug] QUERY OK source="settings" db=0.4ms 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 [] 05:57:59.842 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=6.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:57:59.846 [info] Sent 200 in 15ms 05:58:00.129 [info] {"source":"oban","duration":496,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:58:00.132 [info] GET /sources/30/media/2344980 05:58:00.132 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2344980", "source_id" => "30"} Pipelines: [:browser] 05:58:00.134 [debug] QUERY OK source="media_items" db=0.7ms queue=0.2ms idle=295.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" = ?) [2344980] 05:58:00.136 [debug] QUERY OK source="tasks" db=1.1ms queue=0.1ms idle=296.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" [2344980] 05:58:00.136 [debug] QUERY OK source="sources" db=1.3ms idle=295.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:58:00.139 [debug] QUERY OK source="oban_jobs" db=1.2ms queue=0.1ms idle=295.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 (?,?)) [180159, 183062] 05:58:00.140 [debug] QUERY OK source="settings" db=0.2ms queue=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 [] 05:58:00.141 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms 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 [] 05:58:00.142 [debug] QUERY OK source="settings" db=0.3ms 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 [] 05:58:00.145 [debug] QUERY OK source="media_profiles" db=1.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] 05:58:00.151 [info] Sent 200 in 19ms 05:58:00.162 [debug] Current batch of media processed. Will check again in 1000ms 05:58:00.358 [info] GET /sources/37/media/2074840/edit 05:58:00.359 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2074840", "source_id" => "37"} Pipelines: [:browser] 05:58:00.360 [debug] QUERY OK source="media_items" db=0.5ms idle=219.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" = ?) [2074840] 05:58:00.362 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=220.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:58:00.363 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=219.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:58:00.364 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=218.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:58:00.367 [info] Sent 200 in 9ms 05:58:00.585 [info] GET /sources/37/media/2363574/edit 05:58:00.585 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2363574", "source_id" => "37"} Pipelines: [:browser] 05:58:00.586 [debug] QUERY OK source="media_items" db=0.7ms idle=439.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [2363574] 05:58:00.588 [debug] QUERY OK source="settings" db=0.4ms idle=227.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:58:00.589 [debug] QUERY OK source="settings" db=0.5ms idle=226.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:58:00.591 [debug] QUERY OK source="settings" db=0.3ms idle=227.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:58:00.594 [info] Sent 200 in 9ms 05:58:00.810 [info] GET /sources/37/media/2027490/edit 05:58:00.811 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2027490", "source_id" => "37"} Pipelines: [:browser] 05:58:00.813 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=447.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" = ?) [2027490] 05:58:00.814 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=227.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:58:00.815 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=226.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:58:00.817 [debug] QUERY OK source="settings" db=0.4ms idle=227.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:58:00.820 [info] Sent 200 in 10ms 05:58:01.037 [info] GET /sources/37/media/2010951/edit 05:58:01.037 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2010951", "source_id" => "37"} Pipelines: [:browser] 05:58:01.039 [debug] QUERY OK source="media_items" db=1.0ms queue=0.2ms idle=447.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" = ?) [2010951] 05:58:01.041 [debug] QUERY OK source="settings" db=0.6ms queue=0.3ms idle=227.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:58:01.042 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=227.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:58:01.044 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=228.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:58:01.049 [info] Sent 200 in 11ms 05:58:01.163 [debug] Current batch of media processed. Will check again in 1000ms 05:58:01.262 [info] GET /sources/37/media/2363574 05:58:01.263 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2363574", "source_id" => "37"} Pipelines: [:browser] 05:58:01.264 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=224.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" = ?) [2363574] 05:58:01.265 [debug] QUERY OK source="tasks" db=0.7ms idle=223.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" [2363574] 05:58:01.266 [debug] QUERY OK source="sources" db=0.8ms idle=222.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:58:01.268 [debug] QUERY OK source="oban_jobs" db=1.3ms idle=222.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 (?,?)) [185152, 188692] 05:58:01.269 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=119.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:58:01.270 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms 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 [] 05:58:01.272 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms 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 [] 05:58:01.274 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 05:58:01.279 [info] Sent 200 in 16ms 05:58:02.164 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The hidden consequences of AI software development.\n\n💬 Topics:\n- Unsustainable AI economics;\n- The future of AI coding agents;\n- Loosing know how and the ability to think;\n- Important skills in software development;\n- The future of software.", "duration" => 346, "filename" => "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e011500_Don't forget to Google it....mp4", "id" => "gNkaWhDYilA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=gNkaWhDYilA", "playlist_index" => 17, "timestamp" => 1768478482, "title" => "Don't forget to Google it...", "upload_date" => "20260115"} 05:58:02.165 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=895.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [57] 05:58:02.166 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=895.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:58:02.168 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=894.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-15 12:01:22Z], 57] 05:58:02.171 [debug] QUERY OK source="media_items" db=1.9ms idle=894.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 hidden consequences of AI software development.\n\n💬 Topics:\n- Unsustainable AI economics;\n- The future of AI coding agents;\n- Loosing know how and the ability to think;\n- Important skills in software development;\n- The future of software.", "Don't forget to Google it...", "5d7aefd8-fdc3-4905-9753-80e0413c8e77", "gNkaWhDYilA", 346, false, "https://www.youtube.com/watch?v=gNkaWhDYilA", 17, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e011500_Don't forget to Google it....mp4", false, false, false, 57, [], 98, ~U[2026-01-15 12:01:22Z], ~U[2026-03-01 11:58:02Z], ~U[2026-03-01 11:58:02Z], "The hidden consequences of AI software development.\n\n💬 Topics:\n- Unsustainable AI economics;\n- The future of AI coding agents;\n- Loosing know how and the ability to think;\n- Important skills in software development;\n- The future of software.", "Don't forget to Google it...", "gNkaWhDYilA", 346, false, "https://www.youtube.com/watch?v=gNkaWhDYilA", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e011500_Don't forget to Google it....mp4", false, 57, ~U[2026-01-15 12:01:22Z]] 05:58:02.172 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=19.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] 05:58:02.173 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=6.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:58:02.174 [debug] QUERY OK source="media_items" db=0.7ms queue=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 [2161661] 05:58:02.174 [debug] Current batch of media processed. Will check again in 1000ms 05:58:03.175 [debug] Current batch of media processed. Will check again in 1000ms 05:58:04.176 [debug] Current batch of media processed. Will check again in 1000ms 05:58:05.177 [debug] Current batch of media processed. Will check again in 1000ms 05:58:06.178 [debug] Current batch of media processed. Will check again in 1000ms 05:58:07.179 [debug] Current batch of media processed. Will check again in 1000ms 05:58:08.180 [debug] Current batch of media processed. Will check again in 1000ms 05:58:09.181 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A free frontend course covering HTML, CSS, and JavaScript fundamentals, then moving into how browsers actually work, how the DOM and events behave, how layouts are rendered, how modules and TypeScript fit together, how state is managed without framework magic, and how React, Vue, Svelte, and Angular sit on top of the web platform rather than replace it, focusing on clear mental models and real-world trade-offs.\n\nYou can support this channel by joining our community:\nhttps://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n00:00 Intro\n00:00:59 The anatomy of a web app\n00:10:23 A CSS & HTML crash course\n00:21:07 A JavaScript crash course\n00:35:04 A JavaScript deep dive\n00:53:47 A TypeScript crash course\n01:03:40 Frontend frameworks\n01:22:40 Building a JS framework\n01:28:52 Thanks!", "duration" => 5344, "filename" => "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e011400_Frontend development in 90 minutes.mp4", "id" => "c4n0CjXuZAY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=c4n0CjXuZAY", "playlist_index" => 18, "timestamp" => 1768399271, "title" => "Frontend development in 90 minutes", "upload_date" => "20260114"} 05:58:09.183 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1667.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 (?)) [57] 05:58:09.184 [debug] QUERY OK source="sources" db=0.3ms queue=0.2ms idle=1668.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:58:09.186 [debug] QUERY OK source="media_items" db=1.7ms queue=0.1ms idle=1669.6ms 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 14:01:11Z], 57] 05:58:09.191 [debug] QUERY OK source="media_items" db=3.5ms idle=1012.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" ["A free frontend course covering HTML, CSS, and JavaScript fundamentals, then moving into how browsers actually work, how the DOM and events behave, how layouts are rendered, how modules and TypeScript fit together, how state is managed without framework magic, and how React, Vue, Svelte, and Angular sit on top of the web platform rather than replace it, focusing on clear mental models and real-world trade-offs.\n\nYou can support this channel by joining our community:\nhttps://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n00:00 Intro\n00:00:59 The anatomy of a web app\n00:10:23 A CSS & HTML crash course\n00:21:07 A JavaScript crash course\n00:35:04 A JavaScript deep dive\n00:53:47 A TypeScript crash course\n01:03:40 Frontend frameworks\n01:22:40 Building a JS framework\n01:28:52 Thanks!", "Frontend development in 90 minutes", "51f3b73f-1239-483a-b9e8-7426321580f2", "c4n0CjXuZAY", 5344, false, "https://www.youtube.com/watch?v=c4n0CjXuZAY", 18, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e011400_Frontend development in 90 minutes.mp4", false, false, false, 57, [], 98, ~U[2026-01-14 14:01:11Z], ~U[2026-03-01 11:58:09Z], ~U[2026-03-01 11:58:09Z], "A free frontend course covering HTML, CSS, and JavaScript fundamentals, then moving into how browsers actually work, how the DOM and events behave, how layouts are rendered, how modules and TypeScript fit together, how state is managed without framework magic, and how React, Vue, Svelte, and Angular sit on top of the web platform rather than replace it, focusing on clear mental models and real-world trade-offs.\n\nYou can support this channel by joining our community:\nhttps://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n00:00 Intro\n00:00:59 The anatomy of a web app\n00:10:23 A CSS & HTML crash course\n00:21:07 A JavaScript crash course\n00:35:04 A JavaScript deep dive\n00:53:47 A TypeScript crash course\n01:03:40 Frontend frameworks\n01:22:40 Building a JS framework\n01:28:52 Thanks!", "Frontend development in 90 minutes", "c4n0CjXuZAY", 5344, false, "https://www.youtube.com/watch?v=c4n0CjXuZAY", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e011400_Frontend development in 90 minutes.mp4", false, 57, ~U[2026-01-14 14:01:11Z]] 05:58:09.192 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=14.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:58:09.193 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=9.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] 05:58:09.195 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=10.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 [2161662] 05:58:09.195 [debug] Current batch of media processed. Will check again in 1000ms 05:58:10.196 [debug] Current batch of media processed. Will check again in 1000ms 05:58:11.197 [debug] Current batch of media processed. Will check again in 1000ms 05:58:11.847 [info] {"source":"oban","duration":29142,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:58:12.198 [debug] Current batch of media processed. Will check again in 1000ms 05:58:13.199 [debug] Current batch of media processed. Will check again in 1000ms 05:58:14.200 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Coding lessons from Google developer Addy Osmani\n\n💬 Topics:\n- User problems first\n- Familiar tech wins\n- Novelty creates debt\n- Ship early ugly\n- Clarity over cleverness\n- Delete more code\n- Sustainable pace matters.", "duration" => 483, "filename" => "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e011200_Be smart, stay stupid....mp4", "id" => "nfDhhhRyQr4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=nfDhhhRyQr4", "playlist_index" => 19, "timestamp" => 1768212085, "title" => "Be smart, stay stupid...", "upload_date" => "20260112"} 05:58:14.202 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=1686.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 (?)) [57] 05:58:14.203 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1688.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:58:14.205 [debug] QUERY OK source="media_items" db=1.4ms queue=0.1ms idle=1012.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-12 10:01:25Z], 57] 05:58:14.215 [debug] QUERY OK source="media_items" db=8.5ms idle=691.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" ["Coding lessons from Google developer Addy Osmani\n\n💬 Topics:\n- User problems first\n- Familiar tech wins\n- Novelty creates debt\n- Ship early ugly\n- Clarity over cleverness\n- Delete more code\n- Sustainable pace matters.", "Be smart, stay stupid...", "99ef56af-ef97-4b65-b1b7-2483e20e0f88", "nfDhhhRyQr4", 483, false, "https://www.youtube.com/watch?v=nfDhhhRyQr4", 19, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e011200_Be smart, stay stupid....mp4", false, false, false, 57, [], 98, ~U[2026-01-12 10:01:25Z], ~U[2026-03-01 11:58:14Z], ~U[2026-03-01 11:58:14Z], "Coding lessons from Google developer Addy Osmani\n\n💬 Topics:\n- User problems first\n- Familiar tech wins\n- Novelty creates debt\n- Ship early ugly\n- Clarity over cleverness\n- Delete more code\n- Sustainable pace matters.", "Be smart, stay stupid...", "nfDhhhRyQr4", 483, false, "https://www.youtube.com/watch?v=nfDhhhRyQr4", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e011200_Be smart, stay stupid....mp4", false, 57, ~U[2026-01-12 10:01:25Z]] 05:58:14.216 [debug] QUERY OK source="sources" db=0.7ms queue=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" = ?) [57] 05:58:14.218 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.2ms idle=15.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] 05:58:14.220 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=15.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 [2161663] 05:58:14.221 [debug] Current batch of media processed. Will check again in 1000ms 05:58:15.221 [debug] Current batch of media processed. Will check again in 1000ms 05:58:16.222 [debug] Current batch of media processed. Will check again in 1000ms 05:58:17.223 [debug] Current batch of media processed. Will check again in 1000ms 05:58:18.224 [debug] Current batch of media processed. Will check again in 1000ms 05:58:19.225 [debug] Current batch of media processed. Will check again in 1000ms 05:58:19.647 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/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/88/77/88779e5b42ab900217fc86120216f3b5684242fe8e421a87b85de78bca66b042.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/1f/b5/1fb5344c21b27b8f6ec02c9e10b2ef8a7ac0113ad82902e0b050f617bb9e77c6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 05:58:19.648 [debug] Gracefully stopping file follower 05:58:19.650 [debug] QUERY OK source="sources" db=0.6ms queue=0.2ms idle=440.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [57] 05:58:19.651 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=135.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] 05:58:19.652 [debug] QUERY OK source="media_items" db=1.0ms idle=136.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-25 14:27:02Z], 57] 05:58:19.655 [debug] QUERY OK source="media_items" db=2.1ms idle=138.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" ["Vercel vs Netlify vs Cloudflare. Software architecture is much more important than your hosting provider.", "Edge performance doesn't matter...", "f7fbdd95-8be9-4199-be41-a02369517401", "gr2KohQMK6U", 280, false, "https://www.youtube.com/watch?v=gr2KohQMK6U", 1, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e022500_Edge performance doesn't matter....NA", false, false, false, 57, [], 97, ~U[2026-02-25 14:27:02Z], ~U[2026-03-01 11:58:19Z], ~U[2026-03-01 11:58:19Z], "Vercel vs Netlify vs Cloudflare. Software architecture is much more important than your hosting provider.", "Edge performance doesn't matter...", "gr2KohQMK6U", 280, false, "https://www.youtube.com/watch?v=gr2KohQMK6U", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e022500_Edge performance doesn't matter....NA", false, 57, ~U[2026-02-25 14:27:02Z]] 05:58:19.656 [debug] QUERY OK source="sources" db=0.5ms idle=141.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:58:19.658 [debug] QUERY OK source="media_items" db=1.3ms idle=6.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-25 10:00:59Z], 57] 05:58:19.662 [debug] QUERY OK source="media_items" db=2.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" ["Addy Osmani's take on the future of software.\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- AI productivity compression\n- Junior pipeline disruption\n- Skill atrophy vs leverage\n- Developer role redefined\n- Oversight vs architecture\n- Rise of T-Shaped engineers\n- Education legitimacy crisis\n\n📄 Sources:\nhttps://addyosmani.com/blog/next-two-years/\nhttps://newsletter.eng-leadership.com/p/96-engineers-dont-fully-trust-ai", "The next two years of software dev...", "89f3ceac-1fe3-476c-98db-23ba1b88aa5f", "fQeybL6w-Wo", 502, false, "https://www.youtube.com/watch?v=fQeybL6w-Wo", 2, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e022500_The next two years of software dev....mp4", false, false, false, 57, [], 97, ~U[2026-02-25 10:00:59Z], ~U[2026-03-01 11:58:19Z], ~U[2026-03-01 11:58:19Z], "Addy Osmani's take on the future of software.\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- AI productivity compression\n- Junior pipeline disruption\n- Skill atrophy vs leverage\n- Developer role redefined\n- Oversight vs architecture\n- Rise of T-Shaped engineers\n- Education legitimacy crisis\n\n📄 Sources:\nhttps://addyosmani.com/blog/next-two-years/\nhttps://newsletter.eng-leadership.com/p/96-engineers-dont-fully-trust-ai", "The next two years of software dev...", "fQeybL6w-Wo", 502, false, "https://www.youtube.com/watch?v=fQeybL6w-Wo", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e022500_The next two years of software dev....mp4", false, 57, ~U[2026-02-25 10:00:59Z]] 05:58:19.663 [debug] QUERY OK source="sources" db=0.6ms idle=9.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [57] 05:58:19.664 [debug] QUERY OK source="media_items" db=1.2ms 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-02-23 14:00:29Z], 57] 05:58:19.667 [debug] QUERY OK source="media_items" db=2.1ms idle=8.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" ["Please check out https://mdb.link/try-mongodb-coding-observability-4 to learn more about MongoDB Observability.\n\n💬 Topics:\n- Lines of Code Myth\n- AI Code Illusion\n- Simplicity Over Complexity\n- Hidden Abstractions\n- Zero-Cost Principle\n- Deep vs Shallow Modules\n- Engineering as Curation", "The art of deleting code", "4d2b97c1-4d48-4aea-ae32-45f08f5623e4", "DlM2S42x00c", 551, false, "https://www.youtube.com/watch?v=DlM2S42x00c", 3, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e022300_The art of deleting code.mp4", false, false, false, 57, [], 98, ~U[2026-02-23 14:00:29Z], ~U[2026-03-01 11:58:19Z], ~U[2026-03-01 11:58:19Z], "Please check out https://mdb.link/try-mongodb-coding-observability-4 to learn more about MongoDB Observability.\n\n💬 Topics:\n- Lines of Code Myth\n- AI Code Illusion\n- Simplicity Over Complexity\n- Hidden Abstractions\n- Zero-Cost Principle\n- Deep vs Shallow Modules\n- Engineering as Curation", "The art of deleting code", "DlM2S42x00c", 551, false, "https://www.youtube.com/watch?v=DlM2S42x00c", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e022300_The art of deleting code.mp4", false, 57, ~U[2026-02-23 14:00:29Z]] 05:58:19.668 [debug] QUERY OK source="sources" db=0.5ms idle=9.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [57] 05:58:19.670 [debug] QUERY OK source="media_items" db=1.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-02-18 14:00:45Z], 57] 05:58:19.673 [debug] QUERY OK source="media_items" db=2.0ms queue=0.2ms 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" ["Why lines of code is a useless metric.\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- The lines of code myth;\n- Code quantity over quality\n- AI-driven code inflation\n- Instant legacy systems\n- Activity vs achievement", "Code quality doesn't matter anymore...", "cd0a45a3-5f5e-4308-8d86-9cf44406b0ce", "POMqB6tGB74", 327, false, "https://www.youtube.com/watch?v=POMqB6tGB74", 4, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e021800_Code quality doesn't matter anymore....mp4", false, false, false, 57, [], 98, ~U[2026-02-18 14:00:45Z], ~U[2026-03-01 11:58:19Z], ~U[2026-03-01 11:58:19Z], "Why lines of code is a useless metric.\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- The lines of code myth;\n- Code quantity over quality\n- AI-driven code inflation\n- Instant legacy systems\n- Activity vs achievement", "Code quality doesn't matter anymore...", "POMqB6tGB74", 327, false, "https://www.youtube.com/watch?v=POMqB6tGB74", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e021800_Code quality doesn't matter anymore....mp4", false, 57, ~U[2026-02-18 14:00:45Z]] 05:58:19.673 [debug] QUERY OK source="sources" db=0.4ms idle=8.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:58:19.675 [debug] QUERY OK source="media_items" db=1.1ms 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-02-16 11:00:56Z], 57] 05:58:19.678 [debug] QUERY OK source="media_items" db=2.2ms 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" ["A quick look at modern Java and project Valhalla.\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- Java longevity over language trends\n- Mature ecosystems outperform novelty\n- Null safety in legacy systems\n- Project Valhalla performance goals\n- Value objects\n- Universal generics", "Java’s biggest upgrade in decades", "7cc2dfc0-7563-4fb3-a000-ce444ca9f277", "UuQQVY9jxSs", 519, false, "https://www.youtube.com/watch?v=UuQQVY9jxSs", 5, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e021600_Java’s biggest upgrade in decades.mp4", false, false, false, 57, [], 98, ~U[2026-02-16 11:00:56Z], ~U[2026-03-01 11:58:19Z], ~U[2026-03-01 11:58:19Z], "A quick look at modern Java and project Valhalla.\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- Java longevity over language trends\n- Mature ecosystems outperform novelty\n- Null safety in legacy systems\n- Project Valhalla performance goals\n- Value objects\n- Universal generics", "Java’s biggest upgrade in decades", "UuQQVY9jxSs", 519, false, "https://www.youtube.com/watch?v=UuQQVY9jxSs", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e021600_Java’s biggest upgrade in decades.mp4", false, 57, ~U[2026-02-16 11:00:56Z]] 05:58:19.679 [debug] QUERY OK source="sources" db=0.4ms idle=8.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:58:19.680 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms 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-02-11 16:01:19Z], 57] 05:58:19.683 [debug] QUERY OK source="media_items" db=2.2ms 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" ["A quick look at Claude's generated C compiler.\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- AI agents redefine success criteria\n- Autonomous iteration over functionality\n- Incomplete compiler dependent on GCC\n- Training data limits reasoning ability\n- AI hype exceeds practical results", "The new Claude just generated the worst C compiler ever...", "76b2d2cd-b25b-4ec5-abe9-9cbe17a5dd78", "mb5Lx4auBKI", 297, false, "https://www.youtube.com/watch?v=mb5Lx4auBKI", 6, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e021100_The new Claude just generated the worst C compiler ever....mp4", false, false, false, 57, [], 98, ~U[2026-02-11 16:01:19Z], ~U[2026-03-01 11:58:19Z], ~U[2026-03-01 11:58:19Z], "A quick look at Claude's generated C compiler.\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- AI agents redefine success criteria\n- Autonomous iteration over functionality\n- Incomplete compiler dependent on GCC\n- Training data limits reasoning ability\n- AI hype exceeds practical results", "The new Claude just generated the worst C compiler ever...", "mb5Lx4auBKI", 297, false, "https://www.youtube.com/watch?v=mb5Lx4auBKI", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e021100_The new Claude just generated the worst C compiler ever....mp4", false, 57, ~U[2026-02-11 16:01:19Z]] 05:58:19.684 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=8.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [57] 05:58:19.686 [debug] QUERY OK source="media_items" db=1.1ms 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-02-09 11:01:51Z], 57] 05:58:19.689 [debug] QUERY OK source="media_items" db=1.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" ["An overview of the JS ecosystem in 2026\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- React architectural debt\n- Signal-based reactivity shift\n- Abstraction ceiling reached\n- Isomorphic application frameworks\n- Framework convergence era", "Frameworks don't matter anymore...", "050206fa-4e45-4d0a-a2e3-b5bd15c41c8a", "wkXvv0iJffg", 505, false, "https://www.youtube.com/watch?v=wkXvv0iJffg", 7, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e020900_Frameworks don't matter anymore....mp4", false, false, false, 57, [], 98, ~U[2026-02-09 11:01:51Z], ~U[2026-03-01 11:58:19Z], ~U[2026-03-01 11:58:19Z], "An overview of the JS ecosystem in 2026\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- React architectural debt\n- Signal-based reactivity shift\n- Abstraction ceiling reached\n- Isomorphic application frameworks\n- Framework convergence era", "Frameworks don't matter anymore...", "wkXvv0iJffg", 505, false, "https://www.youtube.com/watch?v=wkXvv0iJffg", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e020900_Frameworks don't matter anymore....mp4", false, 57, ~U[2026-02-09 11:01:51Z]] 05:58:19.690 [debug] QUERY OK source="sources" db=0.5ms 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" = ?) [57] 05:58:19.691 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms 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-02-06 11:00:36Z], 57] 05:58:19.694 [debug] QUERY OK source="media_items" db=2.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" ["Cheap code generation and abstraction increases noise and fragility. First principles matter more than ever.\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- AI lowers code quality globally\n- Open source contribution rules shifting\n- Mechanics optimized over understanding\n- Cheap output increases software noise\n- Abstraction removes ownership responsibility\n- Principles constrain complex systems\n\n🌐 Sources:\nhttps://www.reddit.com/r/webdev/comments/1qpqapj/metas_crawler_made_11_million_requests_to_my_site/\nhttps://swizec.com/blog/the-future-of-software-engineering-is-sre", "Vercel and Meta can bankrupt you...", "0f2ae8cc-e1be-4c5a-8b98-d8dbfb3ef7e6", "Js2mDEFU968", 510, false, "https://www.youtube.com/watch?v=Js2mDEFU968", 8, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e020600_Vercel and Meta can bankrupt you....mp4", false, false, false, 57, [], 98, ~U[2026-02-06 11:00:36Z], ~U[2026-03-01 11:58:19Z], ~U[2026-03-01 11:58:19Z], "Cheap code generation and abstraction increases noise and fragility. First principles matter more than ever.\n🥇 Join the community https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n💬 Topics:\n- AI lowers code quality globally\n- Open source contribution rules shifting\n- Mechanics optimized over understanding\n- Cheap output increases software noise\n- Abstraction removes ownership responsibility\n- Principles constrain complex systems\n\n🌐 Sources:\nhttps://www.reddit.com/r/webdev/comments/1qpqapj/metas_crawler_made_11_million_requests_to_my_site/\nhttps://swizec.com/blog/the-future-of-software-engineering-is-sre", "Vercel and Meta can bankrupt you...", "Js2mDEFU968", 510, false, "https://www.youtube.com/watch?v=Js2mDEFU968", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e020600_Vercel and Meta can bankrupt you....mp4", false, 57, ~U[2026-02-06 11:00:36Z]] 05:58:19.695 [debug] QUERY OK source="sources" db=0.6ms idle=8.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [57] 05:58:19.697 [debug] QUERY OK source="media_items" db=1.1ms 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-02-03 15:40:50Z], 57] 05:58:19.699 [debug] QUERY OK source="media_items" db=1.6ms 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" ["Windows has a huge problem.", "Microsoft has a huge problem...", "d923b25b-95d5-4b97-a08c-a9d85b7fa64d", "E7dA8htDvk0", 249, false, "https://www.youtube.com/watch?v=E7dA8htDvk0", 9, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e020300_Microsoft has a huge problem....NA", false, false, false, 57, [], 98, ~U[2026-02-03 15:40:50Z], ~U[2026-03-01 11:58:19Z], ~U[2026-03-01 11:58:19Z], "Windows has a huge problem.", "Microsoft has a huge problem...", "E7dA8htDvk0", 249, false, "https://www.youtube.com/watch?v=E7dA8htDvk0", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e020300_Microsoft has a huge problem....NA", false, 57, ~U[2026-02-03 15:40:50Z]] 05:58:19.700 [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" = ?) [57] 05:58:19.702 [debug] QUERY OK source="media_items" db=1.4ms idle=6.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-02 10:00:17Z], 57] 05:58:19.705 [debug] QUERY OK source="media_items" db=2.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" ["An overview of the worst tech predictions in recent history.\n\n💬 Topics:\n- iPhones will fail — Steve Ballmer\n- Spam will be solved — Bill Gates\n- No home computers — Ken Olsen\n- The internet will collapse — Robert Metcalfe\n- The internet does not matter — Paul Krugman\n- Tablet PC dominance — Bill Gates\n- Music subscriptions dead — Steve Jobs\n\n🥇 Join the community - https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join", "The worst tech prediction...", "00479a3c-0143-474a-8f4a-a8d14acc5a03", "C7yod85fqCs", 506, false, "https://www.youtube.com/watch?v=C7yod85fqCs", 10, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e020200_The worst tech prediction....mp4", false, false, false, 57, [], 98, ~U[2026-02-02 10:00:17Z], ~U[2026-03-01 11:58:19Z], ~U[2026-03-01 11:58:19Z], "An overview of the worst tech predictions in recent history.\n\n💬 Topics:\n- iPhones will fail — Steve Ballmer\n- Spam will be solved — Bill Gates\n- No home computers — Ken Olsen\n- The internet will collapse — Robert Metcalfe\n- The internet does not matter — Paul Krugman\n- Tablet PC dominance — Bill Gates\n- Music subscriptions dead — Steve Jobs\n\n🥇 Join the community - https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join", "The worst tech prediction...", "C7yod85fqCs", 506, false, "https://www.youtube.com/watch?v=C7yod85fqCs", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e020200_The worst tech prediction....mp4", false, 57, ~U[2026-02-02 10:00:17Z]] 05:58:19.707 [debug] QUERY OK source="sources" db=0.6ms idle=8.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:58:19.708 [debug] QUERY OK source="media_items" db=1.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-01-30 16:00:04Z], 57] 05:58:19.712 [debug] QUERY OK source="media_items" db=2.3ms idle=8.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 quick overview of PostgresSQL\n\n💬 Topics:\n- ACID Transactions;\n- Schema Constraints;\n- Rich Data Types;\n- Row Level Security;\n- Real-Time Notifications;\n- Full-Text Search;\n- Foreign Data Wrappers.\n\n🥇 Join the community - https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join", "Postgres can replace your entire stack...", "c01f49a9-3256-4010-a129-f8a2236a4f9b", "1qs9bQ0MlpQ", 597, false, "https://www.youtube.com/watch?v=1qs9bQ0MlpQ", 11, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e013000_Postgres can replace your entire stack....mp4", false, false, false, 57, [], 98, ~U[2026-01-30 16:00:04Z], ~U[2026-03-01 11:58:19Z], ~U[2026-03-01 11:58:19Z], "A quick overview of PostgresSQL\n\n💬 Topics:\n- ACID Transactions;\n- Schema Constraints;\n- Rich Data Types;\n- Row Level Security;\n- Real-Time Notifications;\n- Full-Text Search;\n- Foreign Data Wrappers.\n\n🥇 Join the community - https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join", "Postgres can replace your entire stack...", "1qs9bQ0MlpQ", 597, false, "https://www.youtube.com/watch?v=1qs9bQ0MlpQ", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e013000_Postgres can replace your entire stack....mp4", false, 57, ~U[2026-01-30 16:00:04Z]] 05:58:19.713 [debug] QUERY OK source="sources" db=0.6ms idle=10.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [57] 05:58:19.714 [debug] QUERY OK source="media_items" db=1.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-01-26 13:01:03Z], 57] 05:58:19.717 [debug] QUERY OK source="media_items" db=2.1ms 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" ["A quick review of the AI narative at Davos 2026.\n\n💬 Topics:\n- AI hype versus reality;\n- Coding agents limitations;\n- AGI is not possible;\n- Transformer architectural has limitations;\n- AI economics don't work.\n\n🥇 Join the community - https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join", "AI will replace developers in 6 months. Again...", "0527568c-c30e-412d-8388-5581993fe1c4", "ZV5Fx4qMDgA", 482, false, "https://www.youtube.com/watch?v=ZV5Fx4qMDgA", 12, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e012600_AI will replace developers in 6 months. Again....mp4", false, false, false, 57, [], 98, ~U[2026-01-26 13:01:03Z], ~U[2026-03-01 11:58:19Z], ~U[2026-03-01 11:58:19Z], "A quick review of the AI narative at Davos 2026.\n\n💬 Topics:\n- AI hype versus reality;\n- Coding agents limitations;\n- AGI is not possible;\n- Transformer architectural has limitations;\n- AI economics don't work.\n\n🥇 Join the community - https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join", "AI will replace developers in 6 months. Again...", "ZV5Fx4qMDgA", 482, false, "https://www.youtube.com/watch?v=ZV5Fx4qMDgA", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e012600_AI will replace developers in 6 months. Again....mp4", false, 57, ~U[2026-01-26 13:01:03Z]] 05:58:19.719 [debug] QUERY OK source="sources" db=1.0ms idle=9.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [57] 05:58:19.721 [debug] QUERY OK source="media_items" db=1.5ms queue=0.1ms 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-01-23 13:00:47Z], 57] 05:58:19.724 [debug] QUERY OK source="media_items" db=2.2ms idle=8.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 quick overview of Astro 6 and the new Cloudflare acquisition.\n\n💬 Topics:\n- What is Astro?\n- NextJS alternatives;\n- Astro 6 features;\n- The future of web development.\n\n🥇 Join the community - https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join", "Astro just hit the jackpot", "f584d908-60f4-4ee7-b368-c9e3c231015e", "QcCV5NZe-QQ", 485, false, "https://www.youtube.com/watch?v=QcCV5NZe-QQ", 13, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e012300_Astro just hit the jackpot.mp4", false, false, false, 57, [], 98, ~U[2026-01-23 13:00:47Z], ~U[2026-03-01 11:58:19Z], ~U[2026-03-01 11:58:19Z], "A quick overview of Astro 6 and the new Cloudflare acquisition.\n\n💬 Topics:\n- What is Astro?\n- NextJS alternatives;\n- Astro 6 features;\n- The future of web development.\n\n🥇 Join the community - https://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join", "Astro just hit the jackpot", "QcCV5NZe-QQ", 485, false, "https://www.youtube.com/watch?v=QcCV5NZe-QQ", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e012300_Astro just hit the jackpot.mp4", false, 57, ~U[2026-01-23 13:00:47Z]] 05:58:19.726 [debug] QUERY OK source="sources" db=0.8ms idle=10.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:58:19.728 [debug] QUERY OK source="media_items" db=1.6ms 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-01-22 16:08:45Z], 57] 05:58:19.731 [debug] QUERY OK source="media_items" db=2.3ms queue=0.1ms idle=9.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 quick look at the newly created Cursor Browser. 3 million lines of Rust code that don't do anything.", "Cursor AI built a browser that doesn't work...", "c34869ec-aacd-4b9a-b8df-8f04c42ebbaa", "T-IPRmrwemM", 209, false, "https://www.youtube.com/watch?v=T-IPRmrwemM", 14, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e012200_Cursor AI built a browser that doesn't work....NA", false, false, false, 57, [], 98, ~U[2026-01-22 16:08:45Z], ~U[2026-03-01 11:58:19Z], ~U[2026-03-01 11:58:19Z], "A quick look at the newly created Cursor Browser. 3 million lines of Rust code that don't do anything.", "Cursor AI built a browser that doesn't work...", "T-IPRmrwemM", 209, false, "https://www.youtube.com/watch?v=T-IPRmrwemM", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e012200_Cursor AI built a browser that doesn't work....NA", false, 57, ~U[2026-01-22 16:08:45Z]] 05:58:19.732 [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" = ?) [57] 05:58:19.734 [debug] QUERY OK source="media_items" db=1.6ms idle=8.6ms 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 17:00:08Z], 57] 05:58:19.738 [debug] QUERY OK source="media_items" db=2.3ms idle=9.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" ["An in depth look at Ruby and Ruby on Rails.\n\n💬 Topics:\n- Readability-first language design;\n- Dynamic typing, runtime checks;\n- Optional static typing layer;\n- Convention-over-configuration framework;\n- Integrated full-stack MVC;\n- Server-rendered HTML workflows;\n- Productivity over raw performance.", "The language behind billion dollar startups", "c67ff5c6-5796-486a-a4d8-aefee4d38735", "6f1_SlJA2ZM", 702, false, "https://www.youtube.com/watch?v=6f1_SlJA2ZM", 15, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e012100_The language behind billion dollar startups.mp4", false, false, false, 57, [], 98, ~U[2026-01-21 17:00:08Z], ~U[2026-03-01 11:58:19Z], ~U[2026-03-01 11:58:19Z], "An in depth look at Ruby and Ruby on Rails.\n\n💬 Topics:\n- Readability-first language design;\n- Dynamic typing, runtime checks;\n- Optional static typing layer;\n- Convention-over-configuration framework;\n- Integrated full-stack MVC;\n- Server-rendered HTML workflows;\n- Productivity over raw performance.", "The language behind billion dollar startups", "6f1_SlJA2ZM", 702, false, "https://www.youtube.com/watch?v=6f1_SlJA2ZM", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e012100_The language behind billion dollar startups.mp4", false, 57, ~U[2026-01-21 17:00:08Z]] 05:58:19.739 [debug] QUERY OK source="sources" db=0.6ms 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" = ?) [57] 05:58:19.740 [debug] QUERY OK source="media_items" db=1.2ms 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-01-19 15:02:48Z], 57] 05:58:19.746 [debug] QUERY OK source="media_items" db=5.4ms 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" ["An honest review of the Codex CLI coding agent.\n\n💬 Topics:\n- Working with coding agents;\n- Codex and Chat GPT review;\n- Building an app with Codex;\n- Are programmers obsolete?\n- The future of software development.", "I actually tried AI coding and it's worse than I thought...", "9f4c4a5c-6f2c-442a-872e-1c39e9c8d0b7", "DLwyGjFsPPM", 568, false, "https://www.youtube.com/watch?v=DLwyGjFsPPM", 16, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e011900_I actually tried AI coding and it's worse than I thought....mp4", false, false, false, 57, [], 98, ~U[2026-01-19 15:02:48Z], ~U[2026-03-01 11:58:19Z], ~U[2026-03-01 11:58:19Z], "An honest review of the Codex CLI coding agent.\n\n💬 Topics:\n- Working with coding agents;\n- Codex and Chat GPT review;\n- Building an app with Codex;\n- Are programmers obsolete?\n- The future of software development.", "I actually tried AI coding and it's worse than I thought...", "DLwyGjFsPPM", 568, false, "https://www.youtube.com/watch?v=DLwyGjFsPPM", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e011900_I actually tried AI coding and it's worse than I thought....mp4", false, 57, ~U[2026-01-19 15:02:48Z]] 05:58:19.748 [debug] QUERY OK source="sources" db=0.6ms idle=12.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] 05:58:19.749 [debug] QUERY OK source="media_items" db=1.2ms idle=10.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-15 12:01:22Z], 57] 05:58:19.752 [debug] QUERY OK source="media_items" db=2.3ms 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 hidden consequences of AI software development.\n\n💬 Topics:\n- Unsustainable AI economics;\n- The future of AI coding agents;\n- Loosing know how and the ability to think;\n- Important skills in software development;\n- The future of software.", "Don't forget to Google it...", "4258d6bf-52b3-4aea-80df-f557621f39e6", "gNkaWhDYilA", 346, false, "https://www.youtube.com/watch?v=gNkaWhDYilA", 17, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e011500_Don't forget to Google it....mp4", false, false, false, 57, [], 98, ~U[2026-01-15 12:01:22Z], ~U[2026-03-01 11:58:19Z], ~U[2026-03-01 11:58:19Z], "The hidden consequences of AI software development.\n\n💬 Topics:\n- Unsustainable AI economics;\n- The future of AI coding agents;\n- Loosing know how and the ability to think;\n- Important skills in software development;\n- The future of software.", "Don't forget to Google it...", "gNkaWhDYilA", 346, false, "https://www.youtube.com/watch?v=gNkaWhDYilA", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e011500_Don't forget to Google it....mp4", false, 57, ~U[2026-01-15 12:01:22Z]] 05:58:19.753 [debug] QUERY OK source="sources" db=0.7ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [57] 05:58:19.755 [debug] QUERY OK source="media_items" db=1.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-01-14 14:01:11Z], 57] 05:58:19.759 [debug] QUERY OK source="media_items" db=2.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" ["A free frontend course covering HTML, CSS, and JavaScript fundamentals, then moving into how browsers actually work, how the DOM and events behave, how layouts are rendered, how modules and TypeScript fit together, how state is managed without framework magic, and how React, Vue, Svelte, and Angular sit on top of the web platform rather than replace it, focusing on clear mental models and real-world trade-offs.\n\nYou can support this channel by joining our community:\nhttps://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n00:00 Intro\n00:00:59 The anatomy of a web app\n00:10:23 A CSS & HTML crash course\n00:21:07 A JavaScript crash course\n00:35:04 A JavaScript deep dive\n00:53:47 A TypeScript crash course\n01:03:40 Frontend frameworks\n01:22:40 Building a JS framework\n01:28:52 Thanks!", "Frontend development in 90 minutes", "4dc537f0-0f1f-4120-9013-f5d99d279511", "c4n0CjXuZAY", 5344, false, "https://www.youtube.com/watch?v=c4n0CjXuZAY", 18, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e011400_Frontend development in 90 minutes.mp4", false, false, false, 57, [], 98, ~U[2026-01-14 14:01:11Z], ~U[2026-03-01 11:58:19Z], ~U[2026-03-01 11:58:19Z], "A free frontend course covering HTML, CSS, and JavaScript fundamentals, then moving into how browsers actually work, how the DOM and events behave, how layouts are rendered, how modules and TypeScript fit together, how state is managed without framework magic, and how React, Vue, Svelte, and Angular sit on top of the web platform rather than replace it, focusing on clear mental models and real-world trade-offs.\n\nYou can support this channel by joining our community:\nhttps://www.youtube.com/channel/UCXzw-OdotBUcNA9yhuYQBwA/join\n\n00:00 Intro\n00:00:59 The anatomy of a web app\n00:10:23 A CSS & HTML crash course\n00:21:07 A JavaScript crash course\n00:35:04 A JavaScript deep dive\n00:53:47 A TypeScript crash course\n01:03:40 Frontend frameworks\n01:22:40 Building a JS framework\n01:28:52 Thanks!", "Frontend development in 90 minutes", "c4n0CjXuZAY", 5344, false, "https://www.youtube.com/watch?v=c4n0CjXuZAY", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e011400_Frontend development in 90 minutes.mp4", false, 57, ~U[2026-01-14 14:01:11Z]] 05:58:19.760 [debug] QUERY OK source="sources" db=0.6ms 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" = ?) [57] 05:58:19.762 [debug] QUERY OK source="media_items" db=1.2ms queue=0.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-01-12 10:01:25Z], 57] 05:58:19.765 [debug] QUERY OK source="media_items" db=2.5ms idle=9.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" ["Coding lessons from Google developer Addy Osmani\n\n💬 Topics:\n- User problems first\n- Familiar tech wins\n- Novelty creates debt\n- Ship early ugly\n- Clarity over cleverness\n- Delete more code\n- Sustainable pace matters.", "Be smart, stay stupid...", "7361f996-926f-4cfb-a125-bdcd26932db6", "nfDhhhRyQr4", 483, false, "https://www.youtube.com/watch?v=nfDhhhRyQr4", 19, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e011200_Be smart, stay stupid....mp4", false, false, false, 57, [], 98, ~U[2026-01-12 10:01:25Z], ~U[2026-03-01 11:58:19Z], ~U[2026-03-01 11:58:19Z], "Coding lessons from Google developer Addy Osmani\n\n💬 Topics:\n- User problems first\n- Familiar tech wins\n- Novelty creates debt\n- Ship early ugly\n- Clarity over cleverness\n- Delete more code\n- Sustainable pace matters.", "Be smart, stay stupid...", "nfDhhhRyQr4", 483, false, "https://www.youtube.com/watch?v=nfDhhhRyQr4", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e011200_Be smart, stay stupid....mp4", false, 57, ~U[2026-01-12 10:01:25Z]] 05:58:19.767 [debug] QUERY OK source="sources" db=0.7ms 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" = ?) [57] 05:58:19.768 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms 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-01-09 10:01:37Z], 57] 05:58:19.771 [debug] QUERY OK source="media_items" db=2.2ms idle=8.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 quick look at the Linux operating system.\n\n💬 Topics:\n- Linux basics;\n- Filesystem hierarchy fundamentals;\n- Essential terminal navigation;\n- Package management model;\n- Kernel core responsibilities;\n- Shell and permissions;\n- User space layers.", "Linux first impressions", "9f3d20fd-10ad-4044-bd5c-b626d6b24db5", "vpdnMPDEBrg", 679, false, "https://www.youtube.com/watch?v=vpdnMPDEBrg", 20, "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e010900_Linux first impressions.mp4", false, false, false, 57, [], 98, ~U[2026-01-09 10:01:37Z], ~U[2026-03-01 11:58:19Z], ~U[2026-03-01 11:58:19Z], "A quick look at the Linux operating system.\n\n💬 Topics:\n- Linux basics;\n- Filesystem hierarchy fundamentals;\n- Essential terminal navigation;\n- Package management model;\n- Kernel core responsibilities;\n- Shell and permissions;\n- User space layers.", "Linux first impressions", "vpdnMPDEBrg", 679, false, "https://www.youtube.com/watch?v=vpdnMPDEBrg", "/downloads/chris/tubes/Awesome_[UCXzw-OdotBUcNA9yhuYQBwA]/Season 2026/s2026e010900_Linux first impressions.mp4", false, 57, ~U[2026-01-09 10:01:37Z]] 05:58:19.773 [debug] QUERY OK source="sources" db=0.5ms idle=9.9ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-01 11:58:19Z], ~U[2026-03-01 11:58:19Z], 57] 05:58:19.775 [debug] QUERY OK source="media_items" db=1.8ms idle=7.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")))) [57] 05:58:19.783 [debug] QUERY OK source="tasks" db=0.7ms idle=10.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189161, 2161658, ~U[2026-03-01 11:58:19Z], ~U[2026-03-01 11:58:19Z]] 05:58:19.792 [info] {"args":{"id":2161658},"id":189161,"meta":{},"system_time":1772366299791982812,"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"]} 05:58:19.792 [debug] QUERY OK source="tasks" db=1.0ms idle=9.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189162, 2186150, ~U[2026-03-01 11:58:19Z], ~U[2026-03-01 11:58:19Z]] 05:58:19.793 [info] {"args":{"id":2186150},"id":189162,"meta":{},"system_time":1772366299792138117,"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"]} 05:58:19.794 [debug] QUERY OK source="media_items" db=1.4ms queue=0.1ms idle=9.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] 05:58:19.794 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:58:19.795 [debug] QUERY OK source="media_items" db=1.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" = ?) [2186150] 05:58:19.795 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:58:19.797 [debug] QUERY OK source="sources" db=1.9ms idle=3.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [57] 05:58:19.797 [debug] QUERY OK source="sources" db=1.4ms queue=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [57] 05:58:19.799 [debug] QUERY OK source="media_profiles" db=1.8ms queue=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] 05:58:19.800 [debug] QUERY OK source="media_profiles" db=1.8ms queue=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] 05:58:19.802 [debug] QUERY OK source="media_items" db=2.4ms 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 [2161658] 05:58:19.804 [debug] QUERY OK source="media_items" db=1.8ms 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 [2186150] 05:58:19.805 [debug] QUERY OK source="media_metadata" db=0.5ms idle=5.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" = ?) [2161658] 05:58:19.806 [debug] QUERY OK source="media_metadata" db=0.6ms 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" = ?) [2186150] 05:58:19.807 [debug] QUERY OK source="media_profiles" db=1.3ms 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] 05:58:19.808 [debug] QUERY OK source="media_profiles" db=1.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] 05:58:19.808 [debug] QUERY OK source="settings" db=0.6ms 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 [] 05:58:19.809 [debug] QUERY OK source="settings" db=0.6ms 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 [] 05:58:19.810 [debug] QUERY OK source="settings" db=0.9ms 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 [] 05:58:19.810 [debug] Running yt-dlp command for action: get_downloadable_status 05:58:19.811 [debug] QUERY OK source="settings" db=0.8ms 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 [] 05:58:19.811 [debug] QUERY OK source="tasks" db=1.3ms queue=0.4ms idle=1.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189163, 2358863, ~U[2026-03-01 11:58:19Z], ~U[2026-03-01 11:58:19Z]] 05:58:19.812 [debug] Running yt-dlp command for action: get_downloadable_status 05:58:19.813 [debug] QUERY OK source="settings" db=0.8ms 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 [] 05:58:19.814 [debug] QUERY OK source="settings" db=0.6ms 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 [] 05:58:19.814 [debug] QUERY OK source="settings" db=0.6ms 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 [] 05:58:19.815 [debug] QUERY OK source="settings" db=0.5ms queue=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 [] 05:58:19.815 [debug] QUERY OK source="media_items" db=3.4ms queue=0.1ms idle=2.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")))) [57] 05:58:19.815 [debug] QUERY OK source="settings" db=0.5ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:58:19.816 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=T-IPRmrwemM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/82/da/82da5cbf767225db7b1979723bf1445b2b6e344e81baff428c56204978a0658d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:58:19.816 [debug] QUERY OK source="settings" db=0.3ms 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 [] 05:58:19.816 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=1.4ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [57] 05:58:19.817 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=E7dA8htDvk0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/81/dc/81dc53a36027f1d2f6410b2a7d2cafe9206f4f465a0ee0ff4017084926a51047.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:58:19.821 [debug] QUERY OK source="tasks" db=0.5ms idle=5.4ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189164, 57, ~U[2026-03-01 11:58:19Z], ~U[2026-03-01 11:58:19Z]] 05:58:19.823 [info] {"args":{"id":57},"id":187456,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":120150783,"event":"job:stop","queue_time":246977,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 05:58:24.762 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=E7dA8htDvk0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/81/dc/81dc53a36027f1d2f6410b2a7d2cafe9206f4f465a0ee0ff4017084926a51047.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] E7dA8htDvk0: This video is available to this channel's members on level: Senior (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 05:58:24.762 [error] yt-dlp download error for media item #2186150: "ERROR: [youtube] E7dA8htDvk0: This video is available to this channel's members on level: Senior (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 05:58:24.763 [error] yt-dlp download will not be retried: "ERROR: [youtube] E7dA8htDvk0: This video is available to this channel's members on level: Senior (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 05:58:24.764 [info] {"args":{"id":2186150},"id":189162,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4971203,"event":"job:stop","queue_time":788338,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:58:24.772 [info] {"args":{"id":2358863},"id":189163,"meta":{},"system_time":1772366304772254568,"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"]} 05:58:24.773 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=1257.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" = ?) [2358863] 05:58:24.773 [info] User scripts lifecyle file either not present or is empty. Skipping. 05:58:24.775 [debug] QUERY OK source="sources" db=0.7ms idle=1259.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:58:24.776 [debug] QUERY OK source="media_profiles" db=0.6ms idle=548.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] 05:58:24.777 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=12.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 [2358863] 05:58:24.786 [debug] QUERY OK source="media_metadata" db=0.3ms idle=13.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" = ?) [2358863] 05:58:24.786 [debug] QUERY OK source="media_profiles" db=0.3ms idle=12.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] 05:58:24.788 [debug] QUERY OK source="settings" db=0.2ms idle=12.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:58:24.788 [debug] QUERY OK source="settings" db=0.3ms idle=12.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:58:24.789 [debug] Running yt-dlp command for action: get_downloadable_status 05:58:24.791 [debug] QUERY OK source="settings" db=0.3ms idle=13.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:58:24.792 [debug] QUERY OK source="settings" db=0.4ms 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 [] 05:58:24.793 [debug] QUERY OK source="settings" db=0.3ms 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 [] 05:58:24.793 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=gr2KohQMK6U --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/da/ad/daad77ea34b51f77f7be4ff826dd733e9dbeb5c7206df3d9398aa79960a4eb61.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:58:25.211 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=T-IPRmrwemM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/82/da/82da5cbf767225db7b1979723bf1445b2b6e344e81baff428c56204978a0658d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] T-IPRmrwemM: This video is available to this channel's members on level: Senior (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 05:58:25.211 [error] yt-dlp download error for media item #2161658: "ERROR: [youtube] T-IPRmrwemM: This video is available to this channel's members on level: Senior (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 05:58:25.212 [error] yt-dlp download will not be retried: "ERROR: [youtube] T-IPRmrwemM: This video is available to this channel's members on level: Senior (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 05:58:25.214 [info] {"args":{"id":2161658},"id":189161,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5420527,"event":"job:stop","queue_time":788338,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:58:29.106 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=gr2KohQMK6U --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/da/ad/daad77ea34b51f77f7be4ff826dd733e9dbeb5c7206df3d9398aa79960a4eb61.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] gr2KohQMK6U: This video is available to this channel's members on level: Senior (or any higher level). Join this channel to get access to members-only content and other exclusive perks. 05:58:29.106 [error] yt-dlp download error for media item #2358863: "ERROR: [youtube] gr2KohQMK6U: This video is available to this channel's members on level: Senior (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 05:58:29.107 [error] yt-dlp download will not be retried: "ERROR: [youtube] gr2KohQMK6U: This video is available to this channel's members on level: Senior (or any higher level). Join this channel to get access to members-only content and other exclusive perks.\n" 05:58:29.108 [info] {"args":{"id":2358863},"id":189163,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4335224,"event":"job:stop","queue_time":5770404,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 05:58:31.249 [info] {"args":{"id":36},"id":188941,"meta":{},"system_time":1772366311248954375,"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"]} 05:58:31.249 [debug] QUERY OK source="sources" db=0.4ms idle=734.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:58:31.250 [debug] QUERY OK source="settings" db=0.2ms idle=735.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:58:31.254 [debug] QUERY OK source="media_items" db=3.9ms idle=736.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] 05:58:31.255 [debug] QUERY OK source="media_items" db=0.6ms idle=13.4ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [36] 05:58:31.256 [debug] QUERY OK source="media_profiles" db=0.4ms queue=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] 05:58:31.257 [debug] QUERY OK source="settings" db=0.2ms idle=7.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:58:31.258 [debug] QUERY OK source="settings" db=0.2ms idle=7.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:58:31.264 [debug] QUERY OK source="media_items" db=4.0ms idle=5.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [36] 05:58:31.267 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 05:58:31.267 [debug] Current batch of media processed. Will check again in 1000ms 05:58:31.267 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=11.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:58:31.268 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:58:31.268 [debug] QUERY OK source="settings" db=0.4ms idle=10.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:58:31.269 [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/38/69/386927a568bf07efc5e264d2833952ef189bd0477a2760a4056bef771ce04bc1.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/90/d5/90d5bde7501c501f4667763e10d00be24cc55b03967f5c03fafc131ae76613e7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:58:32.268 [debug] Current batch of media processed. Will check again in 1000ms 05:58:33.269 [debug] Current batch of media processed. Will check again in 1000ms 05:58:34.270 [debug] Current batch of media processed. Will check again in 1000ms 05:58:35.271 [debug] Current batch of media processed. Will check again in 1000ms 05:58:36.272 [debug] Current batch of media processed. Will check again in 1000ms 05:58:37.273 [debug] Current batch of media processed. Will check again in 1000ms 05:58:38.274 [debug] Current batch of media processed. Will check again in 1000ms 05:58:39.275 [debug] Current batch of media processed. Will check again in 1000ms 05:58:40.276 [debug] Current batch of media processed. Will check again in 1000ms 05:58:41.277 [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" => 1, "timestamp" => 1772130378, "title" => "When open-sourcing your code goes wrong...", "upload_date" => "20260226"} 05:58:41.278 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=763.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] 05:58:41.279 [debug] QUERY OK source="sources" db=0.4ms idle=764.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] 05:58:41.281 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=765.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] 05:58:41.285 [debug] QUERY OK source="media_items" db=2.8ms idle=767.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 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...", "e3296449-8163-4fc8-969a-e82084175534", "wzzh7Not8XE", 398, false, "https://www.youtube.com/watch?v=wzzh7Not8XE", 1, "/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-03-01 11:58:41Z], ~U[2026-03-01 11:58:41Z], "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]] 05:58:41.286 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=14.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:58:41.287 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms 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] 05:58:41.289 [debug] QUERY OK source="media_items" db=0.7ms queue=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 [2361714] 05:58:41.289 [debug] Current batch of media processed. Will check again in 1000ms 05:58:41.870 [info] {"source":"oban","duration":22277,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:58:42.290 [debug] Current batch of media processed. Will check again in 1000ms 05:58:43.291 [debug] Current batch of media processed. Will check again in 1000ms 05:58:44.292 [debug] Current batch of media processed. Will check again in 1000ms 05:58:45.293 [debug] Current batch of media processed. Will check again in 1000ms 05:58:46.294 [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" => 2, "timestamp" => 1771611625, "title" => "TanStack Start in 100 Seconds", "upload_date" => "20260220"} 05:58:46.296 [debug] QUERY OK source="sources" db=0.7ms queue=0.2ms idle=1780.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:58:46.297 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1782.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:58:46.302 [debug] QUERY OK source="media_items" db=4.2ms queue=0.1ms 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-02-20 18:20:25Z], 36] 05:58:46.338 [debug] QUERY OK source="media_items" db=34.8ms idle=788.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" ["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", "a504ce5f-e805-446f-af53-c4d500ad9875", "1fUBWAETmkk", 138, false, "https://www.youtube.com/watch?v=1fUBWAETmkk", 2, "/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-03-01 11:58:46Z], ~U[2026-03-01 11:58:46Z], "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]] 05:58:46.339 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms 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" = ?) [36] 05:58:46.341 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.1ms idle=43.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] 05:58:46.343 [debug] QUERY OK source="media_items" db=2.0ms idle=44.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 [2314238] 05:58:46.344 [debug] Current batch of media processed. Will check again in 1000ms 05:58:47.344 [debug] Current batch of media processed. Will check again in 1000ms 05:58:48.345 [debug] Current batch of media processed. Will check again in 1000ms 05:58:49.346 [debug] Current batch of media processed. Will check again in 1000ms 05:58:50.347 [debug] Current batch of media processed. Will check again in 1000ms 05:58:51.348 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "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", "duration" => 302, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e021700_How AI is breaking the SaaS business model....mp4", "id" => "cxcb55zr2Q8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=cxcb55zr2Q8", "playlist_index" => 3, "timestamp" => 1771352231, "title" => "How AI is breaking the SaaS business model...", "upload_date" => "20260217"} 05:58:51.350 [debug] QUERY OK source="sources" db=0.9ms idle=1834.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] 05:58:51.351 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1836.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:58:51.357 [debug] QUERY OK source="media_items" db=5.0ms queue=0.2ms idle=1837.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-17 18:17:11Z], 36] 05:58:51.367 [debug] QUERY OK source="media_items" db=8.9ms queue=0.1ms idle=1060.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" ["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...", "5ed44ac7-6c8e-4ebb-907e-704fde7e12e5", "cxcb55zr2Q8", 302, false, "https://www.youtube.com/watch?v=cxcb55zr2Q8", 3, "/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-03-01 11:58:51Z], ~U[2026-03-01 11:58:51Z], "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]] 05:58:51.369 [debug] QUERY OK source="sources" db=0.7ms queue=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" = ?) [36] 05:58:51.370 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=19.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] 05:58:51.371 [debug] QUERY OK source="media_items" db=0.8ms idle=19.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 [2291508] 05:58:51.372 [debug] Current batch of media processed. Will check again in 1000ms 05:58:52.372 [debug] Current batch of media processed. Will check again in 1000ms 05:58:53.373 [debug] Current batch of media processed. Will check again in 1000ms 05:58:54.374 [debug] Current batch of media processed. Will check again in 1000ms 05:58:55.376 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Get up to 67% off Kali Linux VPS hosting with Hostinger’s one-click template. Use code FIRESHIP for an extra discount - https://hostinger.com/fireship\n\nLet's learn the fundamentals of penetration testing and ethical hacking tools by running 10 free and open source tools on Kali Linux.\n\nIf some of these tools feel illegal, that's because they could be if used without consent. Never use these tools on a website or network without permission. \n\n#coding #programming #hacking #ethicalhacking \n\n🔗 Resources\n- https://www.kali.org/tools/\n\n🔥 Brain food for developers\n- https://fireship.dev\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n\n- Ethical hacking\n- Penetration Testing\n- Kali Linux\n- NMAP\n- Wireshark\n- Metasploit\n- Aircrack-ng\n- HashCat\n- Skip Fish\n- SQL Map\n- hPing3\n- Social Engineering Toolkit", "duration" => 603, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e020500_10 open source tools that feel illegal....mp4", "id" => "Ukt2gVz25PQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Ukt2gVz25PQ", "playlist_index" => 4, "timestamp" => 1770310058, "title" => "10 open source tools that feel illegal...", "upload_date" => "20260205"} 05:58:55.377 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1066.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:58:55.378 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=863.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:58:55.382 [debug] QUERY OK source="media_items" db=4.0ms idle=863.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 16:47:38Z], 36] 05:58:55.386 [debug] QUERY OK source="media_items" db=2.6ms idle=868.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 up to 67% off Kali Linux VPS hosting with Hostinger’s one-click template. Use code FIRESHIP for an extra discount - https://hostinger.com/fireship\n\nLet's learn the fundamentals of penetration testing and ethical hacking tools by running 10 free and open source tools on Kali Linux.\n\nIf some of these tools feel illegal, that's because they could be if used without consent. Never use these tools on a website or network without permission. \n\n#coding #programming #hacking #ethicalhacking \n\n🔗 Resources\n- https://www.kali.org/tools/\n\n🔥 Brain food for developers\n- https://fireship.dev\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n\n- Ethical hacking\n- Penetration Testing\n- Kali Linux\n- NMAP\n- Wireshark\n- Metasploit\n- Aircrack-ng\n- HashCat\n- Skip Fish\n- SQL Map\n- hPing3\n- Social Engineering Toolkit", "10 open source tools that feel illegal...", "72d2b63f-118c-439a-9c2f-56d66e6b7ce2", "Ukt2gVz25PQ", 603, false, "https://www.youtube.com/watch?v=Ukt2gVz25PQ", 4, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e020500_10 open source tools that feel illegal....mp4", false, false, false, 36, [], 98, ~U[2026-02-05 16:47:38Z], ~U[2026-03-01 11:58:55Z], ~U[2026-03-01 11:58:55Z], "Get up to 67% off Kali Linux VPS hosting with Hostinger’s one-click template. Use code FIRESHIP for an extra discount - https://hostinger.com/fireship\n\nLet's learn the fundamentals of penetration testing and ethical hacking tools by running 10 free and open source tools on Kali Linux.\n\nIf some of these tools feel illegal, that's because they could be if used without consent. Never use these tools on a website or network without permission. \n\n#coding #programming #hacking #ethicalhacking \n\n🔗 Resources\n- https://www.kali.org/tools/\n\n🔥 Brain food for developers\n- https://fireship.dev\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n\n- Ethical hacking\n- Penetration Testing\n- Kali Linux\n- NMAP\n- Wireshark\n- Metasploit\n- Aircrack-ng\n- HashCat\n- Skip Fish\n- SQL Map\n- hPing3\n- Social Engineering Toolkit", "10 open source tools that feel illegal...", "Ukt2gVz25PQ", 603, false, "https://www.youtube.com/watch?v=Ukt2gVz25PQ", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e020500_10 open source tools that feel illegal....mp4", false, 36, ~U[2026-02-05 16:47:38Z]] 05:58:55.387 [debug] QUERY OK source="sources" db=0.5ms idle=74.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] 05:58:55.388 [debug] QUERY OK source="media_profiles" db=0.5ms idle=10.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] 05:58:55.389 [debug] QUERY OK source="media_items" db=0.6ms idle=10.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 [2197070] 05:58:55.389 [debug] Current batch of media processed. Will check again in 1000ms 05:58:56.390 [debug] Current batch of media processed. Will check again in 1000ms 05:58:57.391 [debug] Current batch of media processed. Will check again in 1000ms 05:58:58.392 [debug] Current batch of media processed. Will check again in 1000ms 05:58:59.393 [debug] Current batch of media processed. Will check again in 1000ms 05:59:00.129 [info] {"source":"oban","duration":342,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:59:00.394 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Try out Traycer’s orchestration tool to make your coding agents smarter - https://traycer.ai/fireship\n\nDeploy OpenClaw on a Hostinger VPS in one click. Use code FIRESHIP to get 67% off - http://hostinger.com/fireshipopenclaw\n\nCheck out their free guide on how to install OpenClaw - https://www.hostinger.com/support/how-to-install-openclaw-on-hostinger-vps/\n\nOpenClaw fka Moltbot fka ClawdBot is the most hyped AI application of 2026. But this isn't your average chatbot - it's a free and open source assistant that actually takes care of your everyday tasks. Let's run it.\n\n#coding #ai #programming #clawdbot #moltbot\n\n🔗 Resources\n- https://openclaw.ai/\n- https://github.com/openclaw/openclaw\n\n🔥 Brain food for developers\n- https://fireship.dev\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- ClawdBot vs Claude\n- What is OpenClaw?\n- Who is Peter Steinberger?\n- OpenClaw setup\n- OpenClaw Telegram demo", "duration" => 318, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e013000_The wild rise of OpenClaw....mp4", "id" => "ssYt09bCgUY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ssYt09bCgUY", "playlist_index" => 5, "timestamp" => 1769788596, "title" => "The wild rise of OpenClaw...", "upload_date" => "20260130"} 05:59:00.395 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1880.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:59:00.396 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1881.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:59:00.400 [debug] QUERY OK source="media_items" db=3.6ms queue=0.1ms idle=1073.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-30 15:56:36Z], 36] 05:59:00.404 [debug] QUERY OK source="media_items" db=2.8ms idle=271.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 orchestration tool to make your coding agents smarter - https://traycer.ai/fireship\n\nDeploy OpenClaw on a Hostinger VPS in one click. Use code FIRESHIP to get 67% off - http://hostinger.com/fireshipopenclaw\n\nCheck out their free guide on how to install OpenClaw - https://www.hostinger.com/support/how-to-install-openclaw-on-hostinger-vps/\n\nOpenClaw fka Moltbot fka ClawdBot is the most hyped AI application of 2026. But this isn't your average chatbot - it's a free and open source assistant that actually takes care of your everyday tasks. Let's run it.\n\n#coding #ai #programming #clawdbot #moltbot\n\n🔗 Resources\n- https://openclaw.ai/\n- https://github.com/openclaw/openclaw\n\n🔥 Brain food for developers\n- https://fireship.dev\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- ClawdBot vs Claude\n- What is OpenClaw?\n- Who is Peter Steinberger?\n- OpenClaw setup\n- OpenClaw Telegram demo", "The wild rise of OpenClaw...", "9c7035a6-37ff-4b5e-872f-73e76ad17ff7", "ssYt09bCgUY", 318, false, "https://www.youtube.com/watch?v=ssYt09bCgUY", 5, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e013000_The wild rise of OpenClaw....mp4", false, false, false, 36, [], 98, ~U[2026-01-30 15:56:36Z], ~U[2026-03-01 11:59:00Z], ~U[2026-03-01 11:59:00Z], "Try out Traycer’s orchestration tool to make your coding agents smarter - https://traycer.ai/fireship\n\nDeploy OpenClaw on a Hostinger VPS in one click. Use code FIRESHIP to get 67% off - http://hostinger.com/fireshipopenclaw\n\nCheck out their free guide on how to install OpenClaw - https://www.hostinger.com/support/how-to-install-openclaw-on-hostinger-vps/\n\nOpenClaw fka Moltbot fka ClawdBot is the most hyped AI application of 2026. But this isn't your average chatbot - it's a free and open source assistant that actually takes care of your everyday tasks. Let's run it.\n\n#coding #ai #programming #clawdbot #moltbot\n\n🔗 Resources\n- https://openclaw.ai/\n- https://github.com/openclaw/openclaw\n\n🔥 Brain food for developers\n- https://fireship.dev\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- ClawdBot vs Claude\n- What is OpenClaw?\n- Who is Peter Steinberger?\n- OpenClaw setup\n- OpenClaw Telegram demo", "The wild rise of OpenClaw...", "ssYt09bCgUY", 318, false, "https://www.youtube.com/watch?v=ssYt09bCgUY", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e013000_The wild rise of OpenClaw....mp4", false, 36, ~U[2026-01-30 15:56:36Z]] 05:59:00.405 [debug] QUERY OK source="sources" db=0.5ms queue=0.2ms 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" = ?) [36] 05:59:00.406 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=10.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] 05:59:00.407 [debug] QUERY OK source="media_items" db=0.6ms idle=10.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 [2148702] 05:59:00.407 [debug] Current batch of media processed. Will check again in 1000ms 05:59:01.408 [debug] Current batch of media processed. Will check again in 1000ms 05:59:02.409 [debug] Current batch of media processed. Will check again in 1000ms 05:59:03.410 [debug] Current batch of media processed. Will check again in 1000ms 05:59:04.411 [debug] Current batch of media processed. Will check again in 1000ms 05:59:05.412 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Bun is a mega-fast JavaScript runtime for developers who want to nope out of their node modules folder. Let's run bun run. \n\n#coding #programming #softwaredevelopment \n\n🔗 Resources\n- https://bun.com/docs\n\n📚 Chapters\n\n🔥 Brain food for developers\n- https://fireship.dev\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- The history of JavaScript runtimes\n- What is Bun?\n- How does Bun work?\n- Bun demo", "duration" => 166, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e012200_Bun in 100 Seconds.mp4", "id" => "M4TufsFlv_o", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=M4TufsFlv_o", "playlist_index" => 6, "timestamp" => 1769109269, "title" => "Bun in 100 Seconds", "upload_date" => "20260122"} 05:59:05.414 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1898.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:59:05.415 [debug] QUERY OK source="sources" db=0.8ms idle=1899.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:59:05.419 [debug] QUERY OK source="media_items" db=3.7ms idle=1901.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-22 19:14:29Z], 36] 05:59:05.423 [debug] QUERY OK source="media_items" db=2.3ms idle=1084.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" ["Bun is a mega-fast JavaScript runtime for developers who want to nope out of their node modules folder. Let's run bun run. \n\n#coding #programming #softwaredevelopment \n\n🔗 Resources\n- https://bun.com/docs\n\n📚 Chapters\n\n🔥 Brain food for developers\n- https://fireship.dev\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- The history of JavaScript runtimes\n- What is Bun?\n- How does Bun work?\n- Bun demo", "Bun in 100 Seconds", "668ff92b-4485-472d-9966-d0641bdb4354", "M4TufsFlv_o", 166, false, "https://www.youtube.com/watch?v=M4TufsFlv_o", 6, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e012200_Bun in 100 Seconds.mp4", false, false, false, 36, [], 98, ~U[2026-01-22 19:14:29Z], ~U[2026-03-01 11:59:05Z], ~U[2026-03-01 11:59:05Z], "Bun is a mega-fast JavaScript runtime for developers who want to nope out of their node modules folder. Let's run bun run. \n\n#coding #programming #softwaredevelopment \n\n🔗 Resources\n- https://bun.com/docs\n\n📚 Chapters\n\n🔥 Brain food for developers\n- https://fireship.dev\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- The history of JavaScript runtimes\n- What is Bun?\n- How does Bun work?\n- Bun demo", "Bun in 100 Seconds", "M4TufsFlv_o", 166, false, "https://www.youtube.com/watch?v=M4TufsFlv_o", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e012200_Bun in 100 Seconds.mp4", false, 36, ~U[2026-01-22 19:14:29Z]] 05:59:05.424 [debug] QUERY OK source="sources" db=0.5ms idle=84.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:59:05.425 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=10.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] 05:59:05.426 [debug] QUERY OK source="media_items" db=0.6ms idle=10.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 [2085957] 05:59:05.426 [debug] Current batch of media processed. Will check again in 1000ms 05:59:06.427 [debug] Current batch of media processed. Will check again in 1000ms 05:59:07.428 [debug] Current batch of media processed. Will check again in 1000ms 05:59:08.429 [debug] Current batch of media processed. Will check again in 1000ms 05:59:09.430 [debug] Current batch of media processed. Will check again in 1000ms 05:59:10.431 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Try out the Junie coding agent in your JetBrains IDE - https://jb.gg/Fireship-Junie-AI\n\nComputing has come a long way since we figured out that 1s and 0s were pretty useful. In today's video, we look at the history of programming from the Turing machine to modern JavaScript...\n\n#coding #programming #tech #softwaredevelopment \n\n🔥 Brain food for developers\n- https://fireship.dev\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- Alan Turing\n- Werner Buchholz\n- Kathleen Booth\n- John McCarthey\n- Edsger Dijkstra\n- Dennis Ritchie\n- Ken Thompson\n- Bjarne Stroustrup\n- Anders Hejlsberg\n- Guido Van Rossum\n- James Gosling\n- Brendan Eich", "duration" => 369, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e012000_A brief history of programming....mp4", "id" => "9uW6B9LPntY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=9uW6B9LPntY", "playlist_index" => 7, "timestamp" => 1768931896, "title" => "A brief history of programming...", "upload_date" => "20260120"} 05:59:10.432 [debug] QUERY OK source="sources" db=0.3ms idle=1917.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:59:10.433 [debug] QUERY OK source="sources" db=0.2ms idle=1918.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:59:10.436 [debug] QUERY OK source="media_items" db=3.1ms idle=1918.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-20 17:58:16Z], 36] 05:59:10.439 [debug] QUERY OK source="media_items" db=2.1ms idle=1082.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 out the Junie coding agent in your JetBrains IDE - https://jb.gg/Fireship-Junie-AI\n\nComputing has come a long way since we figured out that 1s and 0s were pretty useful. In today's video, we look at the history of programming from the Turing machine to modern JavaScript...\n\n#coding #programming #tech #softwaredevelopment \n\n🔥 Brain food for developers\n- https://fireship.dev\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- Alan Turing\n- Werner Buchholz\n- Kathleen Booth\n- John McCarthey\n- Edsger Dijkstra\n- Dennis Ritchie\n- Ken Thompson\n- Bjarne Stroustrup\n- Anders Hejlsberg\n- Guido Van Rossum\n- James Gosling\n- Brendan Eich", "A brief history of programming...", "80315344-11fd-4781-b37c-ae8c1e00aa73", "9uW6B9LPntY", 369, false, "https://www.youtube.com/watch?v=9uW6B9LPntY", 7, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e012000_A brief history of programming....mp4", false, false, false, 36, [], 98, ~U[2026-01-20 17:58:16Z], ~U[2026-03-01 11:59:10Z], ~U[2026-03-01 11:59:10Z], "Try out the Junie coding agent in your JetBrains IDE - https://jb.gg/Fireship-Junie-AI\n\nComputing has come a long way since we figured out that 1s and 0s were pretty useful. In today's video, we look at the history of programming from the Turing machine to modern JavaScript...\n\n#coding #programming #tech #softwaredevelopment \n\n🔥 Brain food for developers\n- https://fireship.dev\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- Alan Turing\n- Werner Buchholz\n- Kathleen Booth\n- John McCarthey\n- Edsger Dijkstra\n- Dennis Ritchie\n- Ken Thompson\n- Bjarne Stroustrup\n- Anders Hejlsberg\n- Guido Van Rossum\n- James Gosling\n- Brendan Eich", "A brief history of programming...", "9uW6B9LPntY", 369, false, "https://www.youtube.com/watch?v=9uW6B9LPntY", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e012000_A brief history of programming....mp4", false, 36, ~U[2026-01-20 17:58:16Z]] 05:59:10.440 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [36] 05:59:10.441 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:59:10.442 [debug] QUERY OK source="media_items" db=0.5ms 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 [2068877] 05:59:10.442 [debug] Current batch of media processed. Will check again in 1000ms 05:59:11.442 [debug] Current batch of media processed. Will check again in 1000ms 05:59:11.900 [info] {"source":"oban","duration":29099,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 05:59:11.920 [info] GET /sources/30/media/2362492/edit 05:59:11.920 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2362492", "source_id" => "30"} Pipelines: [:browser] 05:59:11.922 [debug] QUERY OK source="media_items" db=0.9ms idle=406.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" = ?) [2362492] 05:59:11.923 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=408.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:11.924 [debug] QUERY OK source="settings" db=0.4ms idle=409.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:11.926 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=411.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:11.930 [info] Sent 200 in 10ms 05:59:11.982 [info] GET /sources/30/media/2329425 05:59:11.983 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2329425", "source_id" => "30"} Pipelines: [:browser] 05:59:11.984 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms 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" = ?) [2329425] 05:59:11.986 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=62.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:59:11.987 [debug] QUERY OK source="tasks" db=1.2ms queue=0.1ms idle=63.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" [2329425] 05:59:11.989 [debug] QUERY OK source="oban_jobs" db=2.0ms queue=0.1ms idle=63.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" IN (?,?)) [176257, 179032] 05:59:11.991 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=64.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:11.991 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms 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 [] 05:59:11.993 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:59:11.995 [debug] QUERY OK source="media_profiles" db=0.3ms queue=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] 05:59:12.000 [info] Sent 200 in 17ms 05:59:12.208 [info] GET /sources/30/media/2052044/edit 05:59:12.208 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2052044", "source_id" => "30"} Pipelines: [:browser] 05:59:12.209 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=218.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" = ?) [2052044] 05:59:12.210 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=219.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:12.211 [debug] QUERY OK source="settings" db=0.3ms idle=219.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:12.212 [debug] QUERY OK source="settings" db=0.3ms idle=219.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:12.214 [info] Sent 200 in 6ms 05:59:12.434 [info] GET /sources/46/media/2369505 05:59:12.434 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2369505", "source_id" => "46"} Pipelines: [:browser] 05:59:12.435 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=225.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" = ?) [2369505] 05:59:12.437 [debug] QUERY OK source="sources" db=0.6ms idle=225.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:59:12.438 [debug] QUERY OK source="tasks" db=1.4ms queue=0.1ms idle=225.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" [2369505] 05:59:12.439 [debug] QUERY OK source="oban_jobs" db=0.8ms idle=226.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" IN (?,?)) [186512, 188695] 05:59:12.440 [debug] QUERY OK source="settings" db=0.3ms idle=78.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:12.441 [debug] QUERY OK source="settings" db=0.4ms 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 [] 05:59:12.442 [debug] QUERY OK source="settings" db=0.4ms 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 [] 05:59:12.443 [debug] Current batch of media processed. Will check again in 1000ms 05:59:12.444 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 05:59:12.449 [info] Sent 200 in 14ms 05:59:12.660 [info] GET /sources/37/media/2267156 05:59:12.660 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2267156", "source_id" => "37"} Pipelines: [:browser] 05:59:12.662 [debug] QUERY OK source="media_items" db=0.5ms queue=0.2ms idle=221.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" = ?) [2267156] 05:59:12.663 [debug] QUERY OK source="sources" db=0.6ms idle=221.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:59:12.667 [debug] QUERY OK source="tasks" db=4.2ms queue=0.1ms idle=222.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" [2267156] 05:59:12.669 [debug] QUERY OK source="oban_jobs" db=1.0ms idle=225.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 (?,?)) [160551, 163283] 05:59:12.669 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=224.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:12.670 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms 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 [] 05:59:12.671 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:59:12.673 [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] 05:59:12.677 [info] Sent 200 in 17ms 05:59:12.885 [info] GET /sources/46/media/2269214/edit 05:59:12.885 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2269214", "source_id" => "46"} Pipelines: [:browser] 05:59:12.887 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=217.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" = ?) [2269214] 05:59:12.887 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=217.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:12.888 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=217.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:12.889 [debug] QUERY OK source="settings" db=0.2ms idle=217.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:12.891 [info] Sent 200 in 5ms 05:59:13.112 [info] GET /sources/57/media/2225616 05:59:13.112 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2225616", "source_id" => "57"} Pipelines: [:browser] 05:59:13.113 [debug] QUERY OK source="media_items" db=0.4ms idle=439.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" = ?) [2225616] 05:59:13.114 [debug] QUERY OK source="sources" db=0.5ms idle=226.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:59:13.115 [debug] QUERY OK source="tasks" db=1.2ms idle=226.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" [2225616] 05:59:13.116 [debug] QUERY OK source="oban_jobs" db=0.7ms idle=227.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 (?,?)) [150437, 153504] 05:59:13.117 [debug] QUERY OK source="settings" db=0.2ms idle=227.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:13.118 [debug] QUERY OK source="settings" db=0.3ms 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 [] 05:59:13.119 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:59:13.120 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:59:13.124 [info] Sent 200 in 12ms 05:59:13.293 [info] GET /sources/37/media/2296443/edit 05:59:13.294 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2296443", "source_id" => "37"} Pipelines: [:browser] 05:59:13.295 [debug] QUERY OK source="media_items" db=0.4ms idle=178.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" = ?) [2296443] 05:59:13.296 [debug] QUERY OK source="settings" db=0.2ms idle=178.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:13.296 [debug] QUERY OK source="settings" db=0.2ms idle=178.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:13.298 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=178.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:13.299 [info] Sent 200 in 5ms 05:59:13.444 [debug] Current batch of media processed. Will check again in 1000ms 05:59:13.473 [info] GET /sources/30/media/2108479 05:59:13.473 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2108479", "source_id" => "30"} Pipelines: [:browser] 05:59:13.474 [debug] QUERY OK source="media_items" db=0.3ms idle=179.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" = ?) [2108479] 05:59:13.475 [debug] QUERY OK source="tasks" db=0.3ms idle=179.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" [2108479] 05:59:13.476 [debug] QUERY OK source="sources" db=0.5ms idle=178.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:59:13.476 [debug] QUERY OK source="settings" db=0.2ms idle=178.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:13.477 [debug] QUERY OK source="settings" db=0.2ms idle=113.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:13.478 [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 [] 05:59:13.479 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=3.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:59:13.482 [info] Sent 200 in 8ms 05:59:13.654 [info] GET /sources/30/media/2362492 05:59:13.654 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2362492", "source_id" => "30"} Pipelines: [:browser] 05:59:13.655 [debug] QUERY OK source="media_items" db=0.5ms idle=179.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" = ?) [2362492] 05:59:13.656 [debug] QUERY OK source="tasks" db=0.4ms idle=179.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" [2362492] 05:59:13.657 [debug] QUERY OK source="sources" db=0.5ms idle=179.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:59:13.658 [debug] QUERY OK source="oban_jobs" db=0.8ms idle=179.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 (?,?)) [184848, 187017] 05:59:13.659 [debug] QUERY OK source="settings" db=0.2ms idle=179.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:13.659 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:59:13.661 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:59:13.662 [debug] QUERY OK source="media_profiles" db=0.4ms queue=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] 05:59:13.666 [info] Sent 200 in 12ms 05:59:13.835 [info] GET /sources/37/media/2110952 05:59:13.835 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2110952", "source_id" => "37"} Pipelines: [:browser] 05:59:13.837 [debug] QUERY OK source="media_items" db=0.6ms idle=177.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" = ?) [2110952] 05:59:13.838 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=178.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" [2110952] 05:59:13.838 [debug] QUERY OK source="sources" db=0.6ms idle=177.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:59:13.839 [debug] QUERY OK source="settings" db=0.4ms idle=178.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:13.840 [debug] QUERY OK source="settings" db=0.2ms idle=177.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:13.841 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:59:13.843 [debug] QUERY OK source="media_profiles" db=0.5ms queue=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] 05:59:13.846 [info] Sent 200 in 10ms 05:59:14.019 [info] GET /sources/30/media/2052044 05:59:14.019 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2052044", "source_id" => "30"} Pipelines: [:browser] 05:59:14.020 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=181.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" = ?) [2052044] 05:59:14.022 [debug] QUERY OK source="tasks" db=0.5ms queue=0.1ms idle=181.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" [2052044] 05:59:14.022 [debug] QUERY OK source="sources" db=1.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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 05:59:14.023 [debug] QUERY OK source="settings" db=0.4ms idle=181.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:14.024 [debug] QUERY OK source="settings" db=0.3ms idle=180.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:14.025 [debug] QUERY OK source="settings" db=0.4ms queue=0.2ms 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 [] 05:59:14.027 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 05:59:14.030 [info] Sent 200 in 11ms 05:59:14.197 [info] GET /sources/30/media/2060046/edit 05:59:14.197 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2060046", "source_id" => "30"} Pipelines: [:browser] 05:59:14.198 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=175.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" = ?) [2060046] 05:59:14.199 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=175.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:14.200 [debug] QUERY OK source="settings" db=0.3ms idle=175.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:14.201 [debug] QUERY OK source="settings" db=0.3ms idle=175.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:14.203 [info] Sent 200 in 6ms 05:59:14.349 [info] GET /sources/30/media/2100350/edit 05:59:14.349 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2100350", "source_id" => "30"} Pipelines: [:browser] 05:59:14.350 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=322.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" = ?) [2100350] 05:59:14.352 [debug] QUERY OK source="settings" db=0.4ms idle=152.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:14.353 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=152.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:14.354 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=153.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:14.356 [info] Sent 200 in 7ms 05:59:14.446 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => ".NET is a free and open-source platform for creating high-performance software in virtually every domain, powered primarily by the C# programming language.\n\n#coding #programming #softwaredevelopment \n\n🔗 Resources\n- https://learn.microsoft.com/en-us/dotnet/\n\n🔥 Brain food for developers\n- https://fireship.dev\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n\n- The history of .NET\n- .NET explained\n- The .Net ecosystem\n- What can you build in .NET?\n- .NET demo", "duration" => 164, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e011600_.NET in 100 Seconds.mp4", "id" => "MFsYaRnrcPQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=MFsYaRnrcPQ", "playlist_index" => 8, "timestamp" => 1768583015, "title" => ".NET in 100 Seconds", "upload_date" => "20260116"} 05:59:14.447 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=95.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:59:14.448 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=95.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:59:14.454 [debug] QUERY OK source="media_items" db=5.6ms idle=96.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-16 17:03:35Z], 36] 05:59:14.458 [debug] QUERY OK source="media_items" db=2.8ms queue=0.1ms idle=101.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" [".NET is a free and open-source platform for creating high-performance software in virtually every domain, powered primarily by the C# programming language.\n\n#coding #programming #softwaredevelopment \n\n🔗 Resources\n- https://learn.microsoft.com/en-us/dotnet/\n\n🔥 Brain food for developers\n- https://fireship.dev\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n\n- The history of .NET\n- .NET explained\n- The .Net ecosystem\n- What can you build in .NET?\n- .NET demo", ".NET in 100 Seconds", "f4b6c1be-125d-47c1-be7e-a47b834ac205", "MFsYaRnrcPQ", 164, false, "https://www.youtube.com/watch?v=MFsYaRnrcPQ", 8, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e011600_.NET in 100 Seconds.mp4", false, false, false, 36, [], 98, ~U[2026-01-16 17:03:35Z], ~U[2026-03-01 11:59:14Z], ~U[2026-03-01 11:59:14Z], ".NET is a free and open-source platform for creating high-performance software in virtually every domain, powered primarily by the C# programming language.\n\n#coding #programming #softwaredevelopment \n\n🔗 Resources\n- https://learn.microsoft.com/en-us/dotnet/\n\n🔥 Brain food for developers\n- https://fireship.dev\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n\n- The history of .NET\n- .NET explained\n- The .Net ecosystem\n- What can you build in .NET?\n- .NET demo", ".NET in 100 Seconds", "MFsYaRnrcPQ", 164, false, "https://www.youtube.com/watch?v=MFsYaRnrcPQ", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e011600_.NET in 100 Seconds.mp4", false, 36, ~U[2026-01-16 17:03:35Z]] 05:59:14.460 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=93.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:59:14.461 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.1ms idle=13.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] 05:59:14.464 [debug] QUERY OK source="media_items" db=1.7ms 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 [2036781] 05:59:14.464 [debug] Current batch of media processed. Will check again in 1000ms 05:59:14.499 [info] GET /sources/30/media/2044121/edit 05:59:14.500 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2044121", "source_id" => "30"} Pipelines: [:browser] 05:59:14.501 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=45.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" = ?) [2044121] 05:59:14.503 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=43.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:14.503 [debug] QUERY OK source="settings" db=0.4ms 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 [] 05:59:14.505 [debug] QUERY OK source="settings" db=0.3ms 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 [] 05:59:14.508 [info] Sent 200 in 9ms 05:59:14.651 [info] GET /sources/46/media/1949815/edit 05:59:14.652 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1949815", "source_id" => "46"} Pipelines: [:browser] 05:59:14.653 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=188.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" = ?) [1949815] 05:59:14.654 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=151.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:14.654 [debug] QUERY OK source="settings" db=0.1ms idle=151.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:14.655 [debug] QUERY OK source="settings" db=0.2ms idle=151.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:14.657 [info] Sent 200 in 6ms 05:59:14.802 [info] GET /sources/37/media/2296443 05:59:14.802 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2296443", "source_id" => "37"} Pipelines: [:browser] 05:59:14.804 [debug] QUERY OK source="media_items" db=0.4ms idle=298.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" = ?) [2296443] 05:59:14.805 [debug] QUERY OK source="sources" db=0.4ms idle=150.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:59:14.805 [debug] QUERY OK source="tasks" db=0.9ms queue=0.1ms idle=151.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" [2296443] 05:59:14.806 [debug] QUERY OK source="oban_jobs" db=0.6ms idle=151.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 (?,?)) [167812, 170926] 05:59:14.807 [debug] QUERY OK source="settings" db=0.3ms idle=151.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:14.808 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:59:14.809 [debug] QUERY OK source="settings" db=0.3ms 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 [] 05:59:14.811 [debug] QUERY OK source="media_profiles" db=0.2ms queue=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] 05:59:14.815 [info] Sent 200 in 12ms 05:59:14.953 [info] GET /sources/46/media/2269214 05:59:14.953 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2269214", "source_id" => "46"} Pipelines: [:browser] 05:59:14.955 [debug] QUERY OK source="media_items" db=0.7ms idle=147.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" = ?) [2269214] 05:59:14.956 [debug] QUERY OK source="sources" db=0.4ms idle=147.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:59:14.956 [debug] QUERY OK source="tasks" db=0.7ms idle=147.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" [2269214] 05:59:14.957 [debug] QUERY OK source="oban_jobs" db=0.7ms idle=147.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" = ?) [161118] 05:59:14.958 [debug] QUERY OK source="settings" db=0.3ms idle=146.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:14.959 [debug] QUERY OK source="settings" db=0.3ms 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 [] 05:59:14.960 [debug] QUERY OK source="settings" db=0.2ms queue=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 [] 05:59:14.961 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:59:14.965 [info] Sent 200 in 11ms 05:59:15.465 [debug] Current batch of media processed. Will check again in 1000ms 05:59:16.466 [debug] Current batch of media processed. Will check again in 1000ms 05:59:17.467 [debug] Current batch of media processed. Will check again in 1000ms 05:59:18.468 [debug] Current batch of media processed. Will check again in 1000ms 05:59:19.469 [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\nFrom household robots to quantum computing... In today's video, we'll look at 10 technology trends that are set to define 2026 for developers. \n\n#tech #coding #programming #ai \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n\n- Developer Job Market\n- AI Bubble\n- Robotics\n- Wearable AI\n- AR / VR\n- Chip Dominance\n- Nuclear Power\n- Quantum Computing\n- Digital Tyranny\n- Javascript", "duration" => 550, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e011400_The unhinged world of tech in 2026....mp4", "id" => "EKOU3JWDNLI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=EKOU3JWDNLI", "playlist_index" => 9, "timestamp" => 1768417279, "title" => "The unhinged world of tech in 2026...", "upload_date" => "20260114"} 05:59:19.470 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=955.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] 05:59:19.471 [debug] QUERY OK source="sources" db=0.3ms idle=956.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] 05:59:19.476 [debug] QUERY OK source="media_items" db=4.1ms idle=957.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-14 19:01:19Z], 36] 05:59:19.480 [debug] QUERY OK source="media_items" db=3.1ms idle=962.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 Brilliant for free for 30 days - https://brilliant.org/fireship and get 20% off a premium annual subscription.\n\nFrom household robots to quantum computing... In today's video, we'll look at 10 technology trends that are set to define 2026 for developers. \n\n#tech #coding #programming #ai \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n\n- Developer Job Market\n- AI Bubble\n- Robotics\n- Wearable AI\n- AR / VR\n- Chip Dominance\n- Nuclear Power\n- Quantum Computing\n- Digital Tyranny\n- Javascript", "The unhinged world of tech in 2026...", "c5ee92d9-caf8-49a6-8766-e2f63d93fa79", "EKOU3JWDNLI", 550, false, "https://www.youtube.com/watch?v=EKOU3JWDNLI", 9, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e011400_The unhinged world of tech in 2026....mp4", false, false, false, 36, [], 98, ~U[2026-01-14 19:01:19Z], ~U[2026-03-01 11:59:19Z], ~U[2026-03-01 11:59:19Z], "Try Brilliant for free for 30 days - https://brilliant.org/fireship and get 20% off a premium annual subscription.\n\nFrom household robots to quantum computing... In today's video, we'll look at 10 technology trends that are set to define 2026 for developers. \n\n#tech #coding #programming #ai \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n\n- Developer Job Market\n- AI Bubble\n- Robotics\n- Wearable AI\n- AR / VR\n- Chip Dominance\n- Nuclear Power\n- Quantum Computing\n- Digital Tyranny\n- Javascript", "The unhinged world of tech in 2026...", "EKOU3JWDNLI", 550, false, "https://www.youtube.com/watch?v=EKOU3JWDNLI", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e011400_The unhinged world of tech in 2026....mp4", false, 36, ~U[2026-01-14 19:01:19Z]] 05:59:19.481 [debug] QUERY OK source="sources" db=0.6ms idle=102.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:59:19.482 [debug] QUERY OK source="media_profiles" db=0.5ms 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] 05:59:19.483 [debug] QUERY OK source="media_items" db=0.6ms idle=11.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 [2021476] 05:59:19.484 [debug] Current batch of media processed. Will check again in 1000ms 05:59:20.484 [debug] Current batch of media processed. Will check again in 1000ms 05:59:21.485 [debug] Current batch of media processed. Will check again in 1000ms 05:59:22.486 [debug] Current batch of media processed. Will check again in 1000ms 05:59:23.487 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Deploying on Railway feels like magic. Get $20 in free credits to try it out - https://railway.com/?referralCode=fireship\n\nSam Altman declared a code red, and OpenAI responded. GPT-5.2 is now at the top of most leaderboards and benchmarks, but is this actually getting us closer to real AGI, or is it just more smoke and mirrors to keep the hype train going?\n\n#Coding #AI #OpenAI #ChatGPT\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://openai.com/index/introducing-gpt-5-2/\n\n📚 Chapters\n- Sam Altman’s Code Red Aarm\n- GPT 5.2 Arc Benchmarks\n- OpenAI Disney Deal\n- McDonalds AI Commercial\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered", "duration" => 241, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e121200_OpenAI was dead… Then GPT-5.2 dropped.mp4", "id" => "rEvEXQvo-F8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=rEvEXQvo-F8", "playlist_index" => 10, "timestamp" => 1765577950, "title" => "OpenAI was dead… Then GPT-5.2 dropped", "upload_date" => "20251212"} 05:59:23.488 [debug] QUERY OK source="sources" db=0.3ms idle=973.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:59:23.489 [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" = ?) [36] 05:59:23.492 [debug] QUERY OK source="media_items" db=3.1ms idle=974.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 22:19:10Z], 36] 05:59:23.498 [debug] QUERY OK source="media_items" db=5.0ms idle=978.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" ["Deploying on Railway feels like magic. Get $20 in free credits to try it out - https://railway.com/?referralCode=fireship\n\nSam Altman declared a code red, and OpenAI responded. GPT-5.2 is now at the top of most leaderboards and benchmarks, but is this actually getting us closer to real AGI, or is it just more smoke and mirrors to keep the hype train going?\n\n#Coding #AI #OpenAI #ChatGPT\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://openai.com/index/introducing-gpt-5-2/\n\n📚 Chapters\n- Sam Altman’s Code Red Aarm\n- GPT 5.2 Arc Benchmarks\n- OpenAI Disney Deal\n- McDonalds AI Commercial\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered", "OpenAI was dead… Then GPT-5.2 dropped", "c3854a41-6815-43d8-aa3e-413e21e036f5", "rEvEXQvo-F8", 241, false, "https://www.youtube.com/watch?v=rEvEXQvo-F8", 10, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e121200_OpenAI was dead… Then GPT-5.2 dropped.mp4", false, false, false, 36, [], 98, ~U[2025-12-12 22:19:10Z], ~U[2026-03-01 11:59:23Z], ~U[2026-03-01 11:59:23Z], "Deploying on Railway feels like magic. Get $20 in free credits to try it out - https://railway.com/?referralCode=fireship\n\nSam Altman declared a code red, and OpenAI responded. GPT-5.2 is now at the top of most leaderboards and benchmarks, but is this actually getting us closer to real AGI, or is it just more smoke and mirrors to keep the hype train going?\n\n#Coding #AI #OpenAI #ChatGPT\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://openai.com/index/introducing-gpt-5-2/\n\n📚 Chapters\n- Sam Altman’s Code Red Aarm\n- GPT 5.2 Arc Benchmarks\n- OpenAI Disney Deal\n- McDonalds AI Commercial\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered", "OpenAI was dead… Then GPT-5.2 dropped", "rEvEXQvo-F8", 241, false, "https://www.youtube.com/watch?v=rEvEXQvo-F8", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e121200_OpenAI was dead… Then GPT-5.2 dropped.mp4", false, 36, ~U[2025-12-12 22:19:10Z]] 05:59:23.499 [debug] QUERY OK source="sources" db=0.4ms idle=112.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:59:23.500 [debug] QUERY OK source="media_profiles" db=0.3ms idle=11.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] 05:59:23.501 [debug] QUERY OK source="media_items" db=0.4ms idle=11.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 [1758833] 05:59:23.501 [debug] Current batch of media processed. Will check again in 1000ms 05:59:24.502 [debug] Current batch of media processed. Will check again in 1000ms 05:59:25.503 [debug] Current batch of media processed. Will check again in 1000ms 05:59:26.504 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Try out Genspark’s all-in-one AI workspace for free - https://www.genspark.ai/?utm_source=yt&utm_campaign=fireship\n\nThe JavaScript world just got rocked by a 10.0 critical vulnerability called React2Shell (a.k.a. CVE-2025-55182). Let's find out how this React exploit actually works...\n\n#Coding #programming #javascript #react \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://github.com/facebook/react/security/advisories/GHSA-fv66-9v8q-g76r\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n\n- What is React2Shell?\n- CVE-2025-55182 explained\n- React Flight\n- Which React devs are affected?\n- What should you do?", "duration" => 236, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e120900_React.js shell shocked by 10.0 critical vulnerability….mp4", "id" => "QLK9G5zyU-Q", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=QLK9G5zyU-Q", "playlist_index" => 11, "timestamp" => 1765310318, "title" => "React.js shell shocked by 10.0 critical vulnerability…", "upload_date" => "20251209"} 05:59:26.506 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1990.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:59:26.506 [debug] QUERY OK source="sources" db=0.2ms idle=1991.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:59:26.510 [debug] QUERY OK source="media_items" db=3.5ms queue=0.1ms idle=1992.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 19:58:38Z], 36] 05:59:26.515 [debug] QUERY OK source="media_items" db=3.2ms idle=1120.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 Genspark’s all-in-one AI workspace for free - https://www.genspark.ai/?utm_source=yt&utm_campaign=fireship\n\nThe JavaScript world just got rocked by a 10.0 critical vulnerability called React2Shell (a.k.a. CVE-2025-55182). Let's find out how this React exploit actually works...\n\n#Coding #programming #javascript #react \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://github.com/facebook/react/security/advisories/GHSA-fv66-9v8q-g76r\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n\n- What is React2Shell?\n- CVE-2025-55182 explained\n- React Flight\n- Which React devs are affected?\n- What should you do?", "React.js shell shocked by 10.0 critical vulnerability…", "c3ba0312-9165-4a84-a55b-81e2059f580d", "QLK9G5zyU-Q", 236, false, "https://www.youtube.com/watch?v=QLK9G5zyU-Q", 11, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e120900_React.js shell shocked by 10.0 critical vulnerability….mp4", false, false, false, 36, [], 98, ~U[2025-12-09 19:58:38Z], ~U[2026-03-01 11:59:26Z], ~U[2026-03-01 11:59:26Z], "Try out Genspark’s all-in-one AI workspace for free - https://www.genspark.ai/?utm_source=yt&utm_campaign=fireship\n\nThe JavaScript world just got rocked by a 10.0 critical vulnerability called React2Shell (a.k.a. CVE-2025-55182). Let's find out how this React exploit actually works...\n\n#Coding #programming #javascript #react \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://github.com/facebook/react/security/advisories/GHSA-fv66-9v8q-g76r\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n\n- What is React2Shell?\n- CVE-2025-55182 explained\n- React Flight\n- Which React devs are affected?\n- What should you do?", "React.js shell shocked by 10.0 critical vulnerability…", "QLK9G5zyU-Q", 236, false, "https://www.youtube.com/watch?v=QLK9G5zyU-Q", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e120900_React.js shell shocked by 10.0 critical vulnerability….mp4", false, 36, ~U[2025-12-09 19:58:38Z]] 05:59:26.515 [debug] QUERY OK source="sources" db=0.5ms idle=122.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:59:26.516 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 05:59:26.517 [debug] QUERY OK source="media_items" db=0.5ms idle=10.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 [1733891] 05:59:26.517 [debug] Current batch of media processed. Will check again in 1000ms 05:59:26.943 [info] GET /sources/37/media/2087377/edit 05:59:26.943 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2087377", "source_id" => "37"} Pipelines: [:browser] 05:59:26.943 [info] GET /sources/37/media/2312252 05:59:26.944 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2312252", "source_id" => "37"} Pipelines: [:browser] 05:59:26.944 [debug] QUERY OK source="media_items" db=0.6ms idle=429.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" = ?) [2312252] 05:59:26.945 [debug] QUERY OK source="media_items" db=1.3ms idle=433.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" = ?) [2087377] 05:59:26.946 [debug] QUERY OK source="sources" db=0.4ms idle=428.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:59:26.946 [debug] QUERY OK source="settings" db=0.3ms idle=428.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:26.946 [debug] QUERY OK source="tasks" db=1.1ms idle=429.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" [2312252] 05:59:26.947 [debug] QUERY OK source="settings" db=0.4ms queue=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 [] 05:59:26.947 [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 [] 05:59:26.948 [debug] QUERY OK source="oban_jobs" db=0.9ms idle=1.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 (?,?)) [171745, 174984] 05:59:26.948 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:26.949 [debug] QUERY OK source="settings" db=0.2ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:26.949 [info] Sent 200 in 6ms 05:59:26.950 [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 [] 05:59:26.951 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:59:26.954 [info] Sent 200 in 10ms 05:59:27.026 [info] GET /sources/57/media/2170354/edit 05:59:27.026 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2170354", "source_id" => "57"} Pipelines: [:browser] 05:59:27.027 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=79.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" = ?) [2170354] 05:59:27.028 [debug] QUERY OK source="settings" db=0.3ms idle=79.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:27.029 [debug] QUERY OK source="settings" db=0.1ms idle=79.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:27.030 [debug] QUERY OK source="settings" db=0.1ms idle=79.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:27.031 [info] Sent 200 in 5ms 05:59:27.178 [info] GET /sources/30/media/2305791 05:59:27.178 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2305791", "source_id" => "30"} Pipelines: [:browser] 05:59:27.179 [debug] QUERY OK source="media_items" db=0.4ms idle=227.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" = ?) [2305791] 05:59:27.180 [debug] QUERY OK source="tasks" db=0.4ms idle=152.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" [2305791] 05:59:27.180 [debug] QUERY OK source="sources" db=0.5ms idle=151.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:59:27.182 [debug] QUERY OK source="oban_jobs" db=1.1ms idle=152.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 (?,?)) [170097, 172932] 05:59:27.183 [debug] QUERY OK source="settings" db=0.2ms idle=153.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:27.184 [debug] QUERY OK source="settings" db=0.3ms 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 [] 05:59:27.185 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:59:27.186 [debug] QUERY OK source="media_profiles" db=0.2ms queue=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] 05:59:27.190 [info] Sent 200 in 12ms 05:59:27.328 [info] GET /sources/30/media/2329425/edit 05:59:27.328 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2329425", "source_id" => "30"} Pipelines: [:browser] 05:59:27.329 [debug] QUERY OK source="media_items" db=0.4ms idle=146.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" = ?) [2329425] 05:59:27.330 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=146.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:27.331 [debug] QUERY OK source="settings" db=0.2ms idle=146.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:27.332 [debug] QUERY OK source="settings" db=0.3ms idle=146.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:27.334 [info] Sent 200 in 6ms 05:59:27.478 [info] GET /sources/30/media/2376369/edit 05:59:27.479 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2376369", "source_id" => "30"} Pipelines: [:browser] 05:59:27.480 [debug] QUERY OK source="media_items" db=0.3ms idle=150.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" = ?) [2376369] 05:59:27.480 [debug] QUERY OK source="settings" db=0.2ms idle=150.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:27.481 [debug] QUERY OK source="settings" db=0.2ms idle=149.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:27.482 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=149.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:27.483 [info] Sent 200 in 5ms 05:59:27.518 [debug] Current batch of media processed. Will check again in 1000ms 05:59:27.630 [info] GET /sources/30/media/2337310 05:59:27.630 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2337310", "source_id" => "30"} Pipelines: [:browser] 05:59:27.631 [debug] QUERY OK source="media_items" db=0.5ms idle=236.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" = ?) [2337310] 05:59:27.633 [debug] QUERY OK source="sources" db=0.3ms idle=151.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:59:27.633 [debug] QUERY OK source="tasks" db=0.7ms queue=0.1ms idle=152.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" [2337310] 05:59:27.634 [debug] QUERY OK source="oban_jobs" db=0.6ms queue=0.1ms idle=152.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 (?,?)) [178201, 180995] 05:59:27.635 [debug] QUERY OK source="settings" db=0.3ms idle=152.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:27.636 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:59:27.637 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:59:27.638 [debug] QUERY OK source="media_profiles" db=0.2ms queue=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] 05:59:27.642 [info] Sent 200 in 12ms 05:59:27.759 [info] GET /sources/30/media/2076190 05:59:27.759 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2076190", "source_id" => "30"} Pipelines: [:browser] 05:59:27.760 [debug] QUERY OK source="media_items" db=0.3ms idle=125.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" = ?) [2076190] 05:59:27.761 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=125.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" [2076190] 05:59:27.762 [debug] QUERY OK source="sources" db=0.6ms idle=125.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:59:27.763 [debug] QUERY OK source="settings" db=0.3ms idle=125.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:27.763 [debug] QUERY OK source="settings" db=0.2ms idle=124.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:27.764 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:59:27.766 [debug] QUERY OK source="media_profiles" db=0.4ms queue=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] 05:59:27.769 [info] Sent 200 in 9ms 05:59:27.889 [info] GET /sources/37/media/2267156/edit 05:59:27.889 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2267156", "source_id" => "37"} Pipelines: [:browser] 05:59:27.890 [debug] QUERY OK source="media_items" db=0.3ms idle=127.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" = ?) [2267156] 05:59:27.891 [debug] QUERY OK source="settings" db=0.3ms idle=127.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:27.891 [debug] QUERY OK source="settings" db=0.1ms idle=127.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:27.892 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=127.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:27.894 [info] Sent 200 in 5ms 05:59:28.018 [info] GET /sources/30/media/2290238 05:59:28.018 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2290238", "source_id" => "30"} Pipelines: [:browser] 05:59:28.019 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=252.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" = ?) [2290238] 05:59:28.020 [debug] QUERY OK source="sources" db=0.4ms idle=128.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] 05:59:28.021 [debug] QUERY OK source="tasks" db=1.1ms idle=129.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" [2290238] 05:59:28.022 [debug] QUERY OK source="oban_jobs" db=1.0ms idle=130.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 (?,?)) [166301, 169026] 05:59:28.023 [debug] QUERY OK source="settings" db=0.3ms idle=130.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:28.024 [debug] QUERY OK source="settings" db=0.3ms queue=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 [] 05:59:28.025 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:59:28.026 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:59:28.031 [info] Sent 200 in 13ms 05:59:28.147 [info] GET /sources/37/media/2034655 05:59:28.147 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2034655", "source_id" => "37"} Pipelines: [:browser] 05:59:28.148 [debug] QUERY OK source="media_items" db=0.4ms idle=125.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" = ?) [2034655] 05:59:28.149 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=125.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" [2034655] 05:59:28.150 [debug] QUERY OK source="sources" db=0.8ms idle=125.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:59:28.151 [debug] QUERY OK source="settings" db=0.1ms idle=125.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:28.152 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=124.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:28.153 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:59:28.154 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 05:59:28.157 [info] Sent 200 in 9ms 05:59:28.277 [info] GET /sources/57/media/2225616/edit 05:59:28.277 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2225616", "source_id" => "57"} Pipelines: [:browser] 05:59:28.279 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=127.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" = ?) [2225616] 05:59:28.280 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=128.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:28.281 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=128.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:28.282 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=128.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:28.285 [info] Sent 200 in 8ms 05:59:28.405 [info] GET /sources/37/media/2087377 05:59:28.405 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2087377", "source_id" => "37"} Pipelines: [:browser] 05:59:28.406 [debug] QUERY OK source="media_items" db=0.3ms idle=127.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" = ?) [2087377] 05:59:28.407 [debug] QUERY OK source="tasks" db=0.3ms idle=127.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" [2087377] 05:59:28.408 [debug] QUERY OK source="sources" db=0.7ms idle=126.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:59:28.409 [debug] QUERY OK source="settings" db=0.2ms idle=126.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:28.410 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=12.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:28.411 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:59:28.412 [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] 05:59:28.415 [info] Sent 200 in 10ms 05:59:28.518 [info] GET /sources/46/media/2358266 05:59:28.518 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2358266", "source_id" => "46"} Pipelines: [:browser] 05:59:28.519 [debug] Current batch of media processed. Will check again in 1000ms 05:59:28.519 [debug] QUERY OK source="media_items" db=0.3ms idle=110.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" = ?) [2358266] 05:59:28.520 [debug] QUERY OK source="sources" db=0.4ms idle=110.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:59:28.520 [debug] QUERY OK source="tasks" db=0.8ms queue=0.1ms idle=110.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" [2358266] 05:59:28.522 [debug] QUERY OK source="oban_jobs" db=0.7ms idle=110.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 (?,?)) [183724, 187013] 05:59:28.523 [debug] QUERY OK source="settings" db=0.2ms idle=110.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:28.523 [debug] QUERY OK source="settings" db=0.4ms 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 [] 05:59:28.524 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:59:28.526 [debug] QUERY OK source="media_profiles" db=0.2ms queue=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] 05:59:28.529 [info] Sent 200 in 11ms 05:59:28.633 [info] GET /sources/37/media/2110952/edit 05:59:28.633 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2110952", "source_id" => "37"} Pipelines: [:browser] 05:59:28.634 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=111.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" = ?) [2110952] 05:59:28.635 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=111.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:28.636 [debug] QUERY OK source="settings" db=0.2ms idle=111.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:28.636 [debug] QUERY OK source="settings" db=0.2ms idle=111.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:28.638 [info] Sent 200 in 5ms 05:59:28.745 [info] GET /sources/46/media/2246639/edit 05:59:28.745 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2246639", "source_id" => "46"} Pipelines: [:browser] 05:59:28.747 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=219.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" = ?) [2246639] 05:59:28.748 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=113.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:28.749 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=113.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:28.750 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=113.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:28.752 [info] Sent 200 in 7ms 05:59:28.859 [info] GET /sources/46/media/2225383 05:59:28.859 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2225383", "source_id" => "46"} Pipelines: [:browser] 05:59:28.860 [debug] QUERY OK source="media_items" db=0.5ms idle=223.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" = ?) [2225383] 05:59:28.862 [debug] QUERY OK source="tasks" db=0.6ms idle=114.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" [2225383] 05:59:28.862 [debug] QUERY OK source="sources" db=1.0ms 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" = ?) [46] 05:59:28.863 [debug] QUERY OK source="oban_jobs" db=0.6ms idle=114.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" IN (?,?)) [150375, 153503] 05:59:28.864 [debug] QUERY OK source="settings" db=0.2ms idle=114.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:28.865 [debug] QUERY OK source="settings" db=0.4ms 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 [] 05:59:28.866 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:59:28.867 [debug] QUERY OK source="media_profiles" db=0.3ms queue=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] 05:59:28.871 [info] Sent 200 in 12ms 05:59:28.971 [info] GET /sources/57/media/2170354 05:59:28.971 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2170354", "source_id" => "57"} Pipelines: [:browser] 05:59:28.973 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=108.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" = ?) [2170354] 05:59:28.974 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=108.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] 05:59:28.975 [debug] QUERY OK source="tasks" db=2.1ms idle=109.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" [2170354] 05:59:28.977 [debug] QUERY OK source="oban_jobs" db=0.8ms idle=109.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 (?,?)) [136046, 139488] 05:59:28.978 [debug] QUERY OK source="settings" db=0.3ms idle=110.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:28.979 [debug] QUERY OK source="settings" db=0.4ms 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 [] 05:59:28.980 [debug] QUERY OK source="settings" db=0.4ms 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 [] 05:59:28.981 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:59:28.986 [info] Sent 200 in 14ms 05:59:29.520 [debug] Current batch of media processed. Will check again in 1000ms 05:59:30.521 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Try Brilliant for free - https://brilliant.org/fireship and get 20% off a premium annual subscription\n\nAnthropic just bought Bun - the super fast JavaScript runtime that's universally loved by developers. In today's video, we'll break down why they did it, how Bun got here, and what their marriage might look like.\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\nhttps://bun.com/blog/bun-joins-anthropic\nhttps://www.anthropic.com/news/anthropic-acquires-bun-as-claude-code-reaches-usd1b-milestone\n\n📚 Chapters\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered", "duration" => 242, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e120500_Anthropic just bought your favorite JS runtime....mp4", "id" => "5JMiNsV7P3Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5JMiNsV7P3Y", "playlist_index" => 12, "timestamp" => 1764971031, "title" => "Anthropic just bought your favorite JS runtime...", "upload_date" => "20251205"} 05:59:30.523 [debug] QUERY OK source="sources" db=0.6ms idle=121.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 (?)) [36] 05:59:30.523 [debug] QUERY OK source="sources" db=0.4ms idle=8.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 05:59:30.527 [debug] QUERY OK source="media_items" db=2.9ms idle=9.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-05 21:43:51Z], 36] 05:59:30.530 [debug] QUERY OK source="media_items" db=2.0ms idle=13.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 - https://brilliant.org/fireship and get 20% off a premium annual subscription\n\nAnthropic just bought Bun - the super fast JavaScript runtime that's universally loved by developers. In today's video, we'll break down why they did it, how Bun got here, and what their marriage might look like.\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\nhttps://bun.com/blog/bun-joins-anthropic\nhttps://www.anthropic.com/news/anthropic-acquires-bun-as-claude-code-reaches-usd1b-milestone\n\n📚 Chapters\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered", "Anthropic just bought your favorite JS runtime...", "9a42bd51-c500-4dce-858f-cdb19b5e2dcd", "5JMiNsV7P3Y", 242, false, "https://www.youtube.com/watch?v=5JMiNsV7P3Y", 12, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e120500_Anthropic just bought your favorite JS runtime....mp4", false, false, false, 36, [], 98, ~U[2025-12-05 21:43:51Z], ~U[2026-03-01 11:59:30Z], ~U[2026-03-01 11:59:30Z], "Try Brilliant for free - https://brilliant.org/fireship and get 20% off a premium annual subscription\n\nAnthropic just bought Bun - the super fast JavaScript runtime that's universally loved by developers. In today's video, we'll break down why they did it, how Bun got here, and what their marriage might look like.\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\nhttps://bun.com/blog/bun-joins-anthropic\nhttps://www.anthropic.com/news/anthropic-acquires-bun-as-claude-code-reaches-usd1b-milestone\n\n📚 Chapters\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered", "Anthropic just bought your favorite JS runtime...", "5JMiNsV7P3Y", 242, false, "https://www.youtube.com/watch?v=5JMiNsV7P3Y", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e120500_Anthropic just bought your favorite JS runtime....mp4", false, 36, ~U[2025-12-05 21:43:51Z]] 05:59:30.531 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 05:59:30.532 [debug] QUERY OK source="media_profiles" db=0.7ms 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] 05:59:30.533 [debug] QUERY OK source="media_items" db=0.5ms 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 [1703283] 05:59:30.533 [debug] Current batch of media processed. Will check again in 1000ms 05:59:31.534 [debug] Current batch of media processed. Will check again in 1000ms 05:59:32.535 [debug] Current batch of media processed. Will check again in 1000ms 05:59:33.092 [info] GET /sources/57/media/2249212 05:59:33.093 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2249212", "source_id" => "57"} Pipelines: [:browser] 05:59:33.094 [info] GET /sources/30/media/2068130/edit 05:59:33.094 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2068130", "source_id" => "30"} Pipelines: [:browser] 05:59:33.094 [debug] QUERY OK source="media_items" db=1.1ms idle=687.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" = ?) [2249212] 05:59:33.095 [debug] QUERY OK source="media_items" db=0.7ms idle=580.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" = ?) [2068130] 05:59:33.096 [debug] QUERY OK source="tasks" db=0.8ms idle=580.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" [2249212] 05:59:33.096 [debug] QUERY OK source="sources" db=1.2ms idle=580.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] 05:59:33.096 [debug] QUERY OK source="settings" db=0.3ms idle=581.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:33.097 [debug] QUERY OK source="settings" db=0.6ms 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 [] 05:59:33.097 [debug] QUERY OK source="oban_jobs" db=0.7ms idle=2.4ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [156129] 05:59:33.099 [debug] QUERY OK source="settings" db=0.6ms 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 [] 05:59:33.099 [debug] QUERY OK source="settings" db=1.0ms queue=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 [] 05:59:33.100 [debug] QUERY OK source="settings" db=0.8ms queue=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 [] 05:59:33.101 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:59:33.101 [info] Sent 200 in 7ms 05:59:33.102 [debug] QUERY OK source="media_profiles" db=0.3ms queue=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] 05:59:33.105 [info] Sent 200 in 13ms 05:59:33.203 [info] GET /sources/57/media/2161765 05:59:33.203 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2161765", "source_id" => "57"} Pipelines: [:browser] 05:59:33.204 [debug] QUERY OK source="media_items" db=0.4ms idle=105.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" = ?) [2161765] 05:59:33.205 [debug] QUERY OK source="tasks" db=0.3ms idle=105.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" [2161765] 05:59:33.206 [debug] QUERY OK source="sources" db=0.4ms idle=104.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:59:33.206 [debug] QUERY OK source="settings" db=0.3ms idle=105.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:33.207 [debug] QUERY OK source="settings" db=0.2ms idle=104.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:33.208 [debug] QUERY OK source="settings" db=0.2ms 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 [] 05:59:33.209 [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] 05:59:33.212 [info] Sent 200 in 8ms 05:59:33.316 [info] GET /sources/46/media/2369505/edit 05:59:33.316 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2369505", "source_id" => "46"} Pipelines: [:browser] 05:59:33.317 [debug] QUERY OK source="media_items" db=0.3ms idle=110.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" = ?) [2369505] 05:59:33.318 [debug] QUERY OK source="settings" db=0.3ms idle=110.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:33.318 [debug] QUERY OK source="settings" db=0.1ms idle=110.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:33.319 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=110.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:33.321 [info] Sent 200 in 5ms 05:59:33.428 [info] GET /sources/37/media/2085268/edit 05:59:33.429 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2085268", "source_id" => "37"} Pipelines: [:browser] 05:59:33.430 [debug] QUERY OK source="media_items" db=0.4ms idle=112.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" = ?) [2085268] 05:59:33.431 [debug] QUERY OK source="settings" db=0.3ms idle=112.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:33.431 [debug] QUERY OK source="settings" db=0.2ms idle=112.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:33.432 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=112.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:33.434 [info] Sent 200 in 5ms 05:59:33.536 [debug] Current batch of media processed. Will check again in 1000ms 05:59:33.541 [info] GET /sources/30/media/2305791/edit 05:59:33.542 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2305791", "source_id" => "30"} Pipelines: [:browser] 05:59:33.543 [debug] QUERY OK source="media_items" db=0.3ms idle=133.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [2305791] 05:59:33.543 [debug] QUERY OK source="settings" db=0.2ms idle=113.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:33.544 [debug] QUERY OK source="settings" db=0.3ms idle=112.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:33.545 [debug] QUERY OK source="settings" db=0.2ms idle=113.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:33.546 [info] Sent 200 in 5ms 05:59:33.655 [info] GET /sources/30/media/2352916/edit 05:59:33.655 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2352916", "source_id" => "30"} Pipelines: [:browser] 05:59:33.656 [debug] QUERY OK source="media_items" db=0.3ms idle=223.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" = ?) [2352916] 05:59:33.657 [debug] QUERY OK source="settings" db=0.3ms idle=114.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:33.657 [debug] QUERY OK source="settings" db=0.1ms idle=113.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:33.658 [debug] QUERY OK source="settings" db=0.2ms idle=114.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:33.660 [info] Sent 200 in 5ms 05:59:33.756 [info] GET /sources/37/media/2350266 05:59:33.756 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2350266", "source_id" => "37"} Pipelines: [:browser] 05:59:33.757 [debug] QUERY OK source="media_items" db=0.4ms idle=212.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [2350266] 05:59:33.759 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [37] 05:59:33.759 [debug] QUERY OK source="tasks" db=0.7ms queue=0.1ms idle=102.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" [2350266] 05:59:33.760 [debug] QUERY OK source="oban_jobs" db=0.8ms idle=102.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" IN (?,?)) [181595, 185133] 05:59:33.761 [debug] QUERY OK source="settings" db=0.2ms idle=102.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:33.762 [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 [] 05:59:33.762 [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 [] 05:59:33.764 [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] 05:59:33.768 [info] Sent 200 in 12ms 05:59:33.857 [info] GET /sources/37/media/2085268 05:59:33.857 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2085268", "source_id" => "37"} Pipelines: [:browser] 05:59:33.858 [debug] QUERY OK source="media_items" db=0.3ms idle=97.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" = ?) [2085268] 05:59:33.859 [debug] QUERY OK source="tasks" db=0.3ms idle=97.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" [2085268] 05:59:33.859 [debug] QUERY OK source="sources" db=0.4ms 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] 05:59:33.860 [debug] QUERY OK source="settings" db=0.2ms idle=97.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:33.861 [debug] QUERY OK source="settings" db=0.3ms idle=96.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:33.862 [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 [] 05:59:33.863 [debug] QUERY OK source="media_profiles" db=0.2ms queue=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] 05:59:33.866 [info] Sent 200 in 8ms 05:59:33.957 [info] GET /sources/57/media/2161763 05:59:33.958 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2161763", "source_id" => "57"} Pipelines: [:browser] 05:59:33.958 [debug] QUERY OK source="media_items" db=0.2ms idle=99.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" = ?) [2161763] 05:59:33.959 [debug] QUERY OK source="tasks" db=0.2ms idle=98.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" [2161763] 05:59:33.960 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [57] 05:59:33.960 [debug] QUERY OK source="settings" db=0.3ms idle=98.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:33.961 [debug] QUERY OK source="settings" db=0.2ms idle=97.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:33.962 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:33.963 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:59:33.966 [info] Sent 200 in 8ms 05:59:34.059 [info] GET /sources/37/media/2375636/edit 05:59:34.059 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2375636", "source_id" => "37"} Pipelines: [:browser] 05:59:34.060 [debug] QUERY OK source="media_items" db=0.4ms idle=100.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" = ?) [2375636] 05:59:34.061 [debug] QUERY OK source="settings" db=0.3ms idle=100.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:34.062 [debug] QUERY OK source="settings" db=0.2ms idle=100.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:34.062 [debug] QUERY OK source="settings" db=0.1ms idle=100.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:34.064 [info] Sent 200 in 4ms 05:59:34.160 [info] GET /sources/46/media/2225383/edit 05:59:34.161 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2225383", "source_id" => "46"} Pipelines: [:browser] 05:59:34.161 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=197.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" = ?) [2225383] 05:59:34.162 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=101.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:34.163 [debug] QUERY OK source="settings" db=0.2ms idle=101.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:34.164 [debug] QUERY OK source="settings" db=0.1ms idle=101.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:34.165 [info] Sent 200 in 4ms 05:59:34.261 [info] GET /sources/46/media/2358266/edit 05:59:34.261 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2358266", "source_id" => "46"} Pipelines: [:browser] 05:59:34.262 [debug] QUERY OK source="media_items" db=0.2ms idle=199.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" = ?) [2358266] 05:59:34.263 [debug] QUERY OK source="settings" db=0.1ms idle=101.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:34.263 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=100.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:34.264 [debug] QUERY OK source="settings" db=0.2ms idle=101.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:34.266 [info] Sent 200 in 4ms 05:59:34.352 [info] GET /sources/30/media/2290238/edit 05:59:34.352 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2290238", "source_id" => "30"} Pipelines: [:browser] 05:59:34.353 [debug] QUERY OK source="media_items" db=0.4ms idle=189.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" = ?) [2290238] 05:59:34.354 [debug] QUERY OK source="settings" db=0.2ms idle=91.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:34.354 [debug] QUERY OK source="settings" db=0.1ms idle=91.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:34.355 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=91.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:34.357 [info] Sent 200 in 4ms 05:59:34.443 [info] GET /sources/30/media/2076190/edit 05:59:34.443 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2076190", "source_id" => "30"} Pipelines: [:browser] 05:59:34.444 [debug] QUERY OK source="media_items" db=0.3ms idle=90.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" = ?) [2076190] 05:59:34.445 [debug] QUERY OK source="settings" db=0.2ms idle=90.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:34.445 [debug] QUERY OK source="settings" db=0.1ms idle=90.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:34.445 [debug] QUERY OK source="settings" db=0.1ms idle=89.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:34.447 [info] Sent 200 in 3ms 05:59:34.534 [info] GET /sources/37/media/2034655/edit 05:59:34.534 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2034655", "source_id" => "37"} Pipelines: [:browser] 05:59:34.535 [debug] QUERY OK source="media_items" db=0.3ms idle=124.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" = ?) [2034655] 05:59:34.536 [debug] QUERY OK source="settings" db=0.2ms idle=91.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:34.536 [debug] QUERY OK source="settings" db=0.1ms idle=91.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:34.537 [debug] QUERY OK source="settings" db=0.1ms idle=91.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:34.537 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Get up to 67% off Docker VPS to self-host your own app. Use code FIRESHIP for an extra discount - https://hostinger.com/fireshipdocker\n\nEarlier this year, Coinbase changed online payments forever with a new protocol called x402. But could this technology really usher in a new age of 'machine to machine' payments? Let's run it...\n\n#ai #programming #coding \n\n💬 Chat with Me on Discord\n- https://discord.gg/fireship\n\n🔗 Resources\n- https://www.x402.org/\n- https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/402\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- HTTP 402 Status Code\n- x402\n- x402 vs Stripe\n- Machine to machine payments\n- x402 demo", "duration" => 290, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e112600_AI agents are paying each other now….mp4", "id" => "S6wc6yvoZLY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=S6wc6yvoZLY", "playlist_index" => 13, "timestamp" => 1764181232, "title" => "AI agents are paying each other now…", "upload_date" => "20251126"} 05:59:34.538 [debug] QUERY OK source="sources" db=0.2ms idle=92.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:59:34.538 [info] Sent 200 in 4ms 05:59:34.539 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [36] 05:59:34.542 [debug] QUERY OK source="media_items" db=2.5ms 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-11-26 18:20:32Z], 36] 05:59:34.545 [debug] QUERY OK source="media_items" db=2.4ms 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" ["Get up to 67% off Docker VPS to self-host your own app. Use code FIRESHIP for an extra discount - https://hostinger.com/fireshipdocker\n\nEarlier this year, Coinbase changed online payments forever with a new protocol called x402. But could this technology really usher in a new age of 'machine to machine' payments? Let's run it...\n\n#ai #programming #coding \n\n💬 Chat with Me on Discord\n- https://discord.gg/fireship\n\n🔗 Resources\n- https://www.x402.org/\n- https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/402\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- HTTP 402 Status Code\n- x402\n- x402 vs Stripe\n- Machine to machine payments\n- x402 demo", "AI agents are paying each other now…", "13ad48ea-5b40-48fe-b628-3ef154b524f1", "S6wc6yvoZLY", 290, false, "https://www.youtube.com/watch?v=S6wc6yvoZLY", 13, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e112600_AI agents are paying each other now….mp4", false, false, false, 36, [], 98, ~U[2025-11-26 18:20:32Z], ~U[2026-03-01 11:59:34Z], ~U[2026-03-01 11:59:34Z], "Get up to 67% off Docker VPS to self-host your own app. Use code FIRESHIP for an extra discount - https://hostinger.com/fireshipdocker\n\nEarlier this year, Coinbase changed online payments forever with a new protocol called x402. But could this technology really usher in a new age of 'machine to machine' payments? Let's run it...\n\n#ai #programming #coding \n\n💬 Chat with Me on Discord\n- https://discord.gg/fireship\n\n🔗 Resources\n- https://www.x402.org/\n- https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/402\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- HTTP 402 Status Code\n- x402\n- x402 vs Stripe\n- Machine to machine payments\n- x402 demo", "AI agents are paying each other now…", "S6wc6yvoZLY", 290, false, "https://www.youtube.com/watch?v=S6wc6yvoZLY", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e112600_AI agents are paying each other now….mp4", false, 36, ~U[2025-11-26 18:20:32Z]] 05:59:34.545 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [36] 05:59:34.546 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 05:59:34.547 [debug] QUERY OK source="media_items" db=0.4ms 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 [1631140] 05:59:34.547 [debug] Current batch of media processed. Will check again in 1000ms 05:59:34.628 [info] GET /sources/30/media/2068130 05:59:34.628 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2068130", "source_id" => "30"} Pipelines: [:browser] 05:59:34.629 [debug] QUERY OK source="media_items" db=0.6ms idle=86.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" = ?) [2068130] 05:59:34.630 [debug] QUERY OK source="tasks" db=0.2ms idle=85.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" [2068130] 05:59:34.630 [debug] QUERY OK source="sources" db=0.3ms idle=84.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:59:34.631 [debug] QUERY OK source="settings" db=0.2ms idle=84.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:34.631 [debug] QUERY OK source="settings" db=0.1ms idle=83.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:34.632 [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 [] 05:59:34.633 [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] 05:59:34.635 [info] Sent 200 in 7ms 05:59:34.718 [info] GET /sources/30/media/2352916 05:59:34.718 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2352916", "source_id" => "30"} Pipelines: [:browser] 05:59:34.719 [debug] QUERY OK source="media_items" db=0.3ms idle=88.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" = ?) [2352916] 05:59:34.720 [debug] QUERY OK source="sources" db=0.4ms idle=88.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:59:34.721 [debug] QUERY OK source="tasks" db=1.0ms idle=89.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" [2352916] 05:59:34.722 [debug] QUERY OK source="oban_jobs" db=0.6ms idle=89.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 (?,?)) [182253, 185136] 05:59:34.723 [debug] QUERY OK source="settings" db=0.2ms idle=89.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:34.723 [debug] QUERY OK source="settings" db=0.3ms idle=3.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:59:34.724 [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 [] 05:59:34.725 [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] 05:59:34.728 [info] Sent 200 in 10ms 05:59:35.548 [debug] Current batch of media processed. Will check again in 1000ms 05:59:36.549 [debug] Current batch of media processed. Will check again in 1000ms 05:59:37.550 [debug] Current batch of media processed. Will check again in 1000ms 05:59:38.552 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Get 20% off Mobbin Pro to make your apps not ugly - https://mobbin.com/fireship\n\nGemini 3 may have just put Google in prime position to have the best-performing AI model by the end of the year. But how powerful is it really?\n\n#ai #coding #tech \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://blog.google/products/gemini/gemini-3/\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- Gemini 3 release\n- Gemini 3 benchmarks\n- Google Antigravity", "duration" => 246, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e112100_Did Google just kill OpenAI?.mp4", "id" => "bsL7ZnKIAhs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=bsL7ZnKIAhs", "playlist_index" => 14, "timestamp" => 1763753210, "title" => "Did Google just kill OpenAI?", "upload_date" => "20251121"} 05:59:38.553 [debug] QUERY OK source="sources" db=0.5ms idle=132.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:59:38.553 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [36] 05:59:38.557 [debug] QUERY OK source="media_items" db=2.9ms idle=39.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-21 19:26:50Z], 36] 05:59:38.560 [debug] QUERY OK source="media_items" db=2.4ms idle=42.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 20% off Mobbin Pro to make your apps not ugly - https://mobbin.com/fireship\n\nGemini 3 may have just put Google in prime position to have the best-performing AI model by the end of the year. But how powerful is it really?\n\n#ai #coding #tech \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://blog.google/products/gemini/gemini-3/\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- Gemini 3 release\n- Gemini 3 benchmarks\n- Google Antigravity", "Did Google just kill OpenAI?", "48427cd7-65af-4c14-9564-0561d1aaab5c", "bsL7ZnKIAhs", 246, false, "https://www.youtube.com/watch?v=bsL7ZnKIAhs", 14, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e112100_Did Google just kill OpenAI?.mp4", false, false, false, 36, [], 98, ~U[2025-11-21 19:26:50Z], ~U[2026-03-01 11:59:38Z], ~U[2026-03-01 11:59:38Z], "Get 20% off Mobbin Pro to make your apps not ugly - https://mobbin.com/fireship\n\nGemini 3 may have just put Google in prime position to have the best-performing AI model by the end of the year. But how powerful is it really?\n\n#ai #coding #tech \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://blog.google/products/gemini/gemini-3/\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- Gemini 3 release\n- Gemini 3 benchmarks\n- Google Antigravity", "Did Google just kill OpenAI?", "bsL7ZnKIAhs", 246, false, "https://www.youtube.com/watch?v=bsL7ZnKIAhs", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e112100_Did Google just kill OpenAI?.mp4", false, 36, ~U[2025-11-21 19:26:50Z]] 05:59:38.560 [debug] QUERY OK source="sources" db=0.3ms idle=45.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:59:38.561 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 05:59:38.562 [debug] QUERY OK source="media_items" db=0.4ms 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 [1592901] 05:59:38.562 [debug] Current batch of media processed. Will check again in 1000ms 05:59:39.563 [debug] Current batch of media processed. Will check again in 1000ms 05:59:40.564 [debug] Current batch of media processed. Will check again in 1000ms 05:59:41.565 [debug] Current batch of media processed. Will check again in 1000ms 05:59:41.918 [info] {"source":"oban","duration":16591,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:59:42.566 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Break prod less with Sentry’s AI Code Review - https://sentry.io/fireship\n\nThis week, it was Cloudflare's turn to take down your favourite domain. In today's video, we'll try to find out why the internet keeps falling apart...\n\n#programming #coding #cloudflare \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://blog.cloudflare.com/18-november-2025-outage/\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- Cloudflare outage explained\n- Which sites were affected\n- Why is the internet falling apart?", "duration" => 190, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e111900_The entire internet just crashed... again.mp4", "id" => "tF_4baiIUiQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tF_4baiIUiQ", "playlist_index" => 15, "timestamp" => 1763576066, "title" => "The entire internet just crashed... again", "upload_date" => "20251119"} 05:59:42.567 [debug] QUERY OK source="sources" db=0.4ms idle=649.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:59:42.568 [debug] QUERY OK source="sources" db=0.2ms idle=139.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:59:42.571 [debug] QUERY OK source="media_items" db=2.7ms idle=53.8ms 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 18:14:26Z], 36] 05:59:42.573 [debug] QUERY OK source="media_items" db=1.7ms idle=57.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" ["Break prod less with Sentry’s AI Code Review - https://sentry.io/fireship\n\nThis week, it was Cloudflare's turn to take down your favourite domain. In today's video, we'll try to find out why the internet keeps falling apart...\n\n#programming #coding #cloudflare \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://blog.cloudflare.com/18-november-2025-outage/\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- Cloudflare outage explained\n- Which sites were affected\n- Why is the internet falling apart?", "The entire internet just crashed... again", "9af65300-6e99-4b00-bc70-2f2302404302", "tF_4baiIUiQ", 190, false, "https://www.youtube.com/watch?v=tF_4baiIUiQ", 15, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e111900_The entire internet just crashed... again.mp4", false, false, false, 36, [], 98, ~U[2025-11-19 18:14:26Z], ~U[2026-03-01 11:59:42Z], ~U[2026-03-01 11:59:42Z], "Break prod less with Sentry’s AI Code Review - https://sentry.io/fireship\n\nThis week, it was Cloudflare's turn to take down your favourite domain. In today's video, we'll try to find out why the internet keeps falling apart...\n\n#programming #coding #cloudflare \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://blog.cloudflare.com/18-november-2025-outage/\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- Cloudflare outage explained\n- Which sites were affected\n- Why is the internet falling apart?", "The entire internet just crashed... again", "tF_4baiIUiQ", 190, false, "https://www.youtube.com/watch?v=tF_4baiIUiQ", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e111900_The entire internet just crashed... again.mp4", false, 36, ~U[2025-11-19 18:14:26Z]] 05:59:42.574 [debug] QUERY OK source="sources" db=0.2ms idle=59.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:59:42.575 [debug] QUERY OK source="media_profiles" db=1.0ms idle=6.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:59:42.576 [debug] QUERY OK source="media_items" db=0.4ms idle=7.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1577478] 05:59:42.576 [debug] Current batch of media processed. Will check again in 1000ms 05:59:43.577 [debug] Current batch of media processed. Will check again in 1000ms 05:59:44.578 [debug] Current batch of media processed. Will check again in 1000ms 05:59:45.579 [debug] Current batch of media processed. Will check again in 1000ms 05:59:46.580 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Try Brilliant for free - https://brilliant.org/fireship and get 20% off a premium annual subscription\n\nValve just dropped the Steam Machine - a console-like gaming pc that runs Arch under the hood. In today's video, we'll break down the details and ask if 2026 will finally be the year of the Linux desktop. \n\n#coding #linux #steam #steamos #valve \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://store.steampowered.com/sale/steammachine\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- Valve Announce the Steam Machine\n- What is SteamOS\n- Proton Compatibility Layer\n- Will it run GTA6?", "duration" => 235, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e111400_The gaming console wars just got weird....mp4", "id" => "Q8QdKRbC1O0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Q8QdKRbC1O0", "playlist_index" => 16, "timestamp" => 1763145007, "title" => "The gaming console wars just got weird...", "upload_date" => "20251114"} 05:59:46.582 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=145.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [36] 05:59:46.583 [debug] QUERY OK source="sources" db=0.4ms idle=68.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:59:46.587 [debug] QUERY OK source="media_items" db=3.9ms idle=68.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-14 18:30:07Z], 36] 05:59:46.592 [debug] QUERY OK source="media_items" db=3.6ms idle=73.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 Brilliant for free - https://brilliant.org/fireship and get 20% off a premium annual subscription\n\nValve just dropped the Steam Machine - a console-like gaming pc that runs Arch under the hood. In today's video, we'll break down the details and ask if 2026 will finally be the year of the Linux desktop. \n\n#coding #linux #steam #steamos #valve \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://store.steampowered.com/sale/steammachine\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- Valve Announce the Steam Machine\n- What is SteamOS\n- Proton Compatibility Layer\n- Will it run GTA6?", "The gaming console wars just got weird...", "acb2b42f-2e8e-458d-bba0-834b5534dc2d", "Q8QdKRbC1O0", 235, false, "https://www.youtube.com/watch?v=Q8QdKRbC1O0", 16, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e111400_The gaming console wars just got weird....mp4", false, false, false, 36, [], 98, ~U[2025-11-14 18:30:07Z], ~U[2026-03-01 11:59:46Z], ~U[2026-03-01 11:59:46Z], "Try Brilliant for free - https://brilliant.org/fireship and get 20% off a premium annual subscription\n\nValve just dropped the Steam Machine - a console-like gaming pc that runs Arch under the hood. In today's video, we'll break down the details and ask if 2026 will finally be the year of the Linux desktop. \n\n#coding #linux #steam #steamos #valve \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://store.steampowered.com/sale/steammachine\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- Valve Announce the Steam Machine\n- What is SteamOS\n- Proton Compatibility Layer\n- Will it run GTA6?", "The gaming console wars just got weird...", "Q8QdKRbC1O0", 235, false, "https://www.youtube.com/watch?v=Q8QdKRbC1O0", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e111400_The gaming console wars just got weird....mp4", false, 36, ~U[2025-11-14 18:30:07Z]] 05:59:46.593 [debug] QUERY OK source="sources" db=0.6ms idle=77.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] 05:59:46.593 [debug] QUERY OK source="media_profiles" db=0.5ms idle=11.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] 05:59:46.595 [debug] QUERY OK source="media_items" db=0.7ms idle=11.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 [1534509] 05:59:46.595 [debug] Current batch of media processed. Will check again in 1000ms 05:59:47.596 [debug] Current batch of media processed. Will check again in 1000ms 05:59:48.597 [debug] Current batch of media processed. Will check again in 1000ms 05:59:49.598 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Check out Neurosity to code with your brain waves - https://neurosity.co/fireship\n\nI gave Claude Code full access to my mind to find out if it's really possible to vibe code straight from the dome using the Neurosity Crown. Let's run it...\n\n#coding #programming #tech\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://docs.neurosity.co/docs/overview/\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- What is the Neurosity Crown?\n- How the Neurosity Crown works\n- Building a Claude Clode with my mind\n- Neurosity SDK", "duration" => 242, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e111200_This neural interface writes code from my brain waves….mp4", "id" => "4bQ2qhfJUjA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=4bQ2qhfJUjA", "playlist_index" => 17, "timestamp" => 1762971723, "title" => "This neural interface writes code from my brain waves…", "upload_date" => "20251112"} 05:59:49.599 [debug] QUERY OK source="sources" db=0.4ms idle=1084.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 05:59:49.600 [debug] QUERY OK source="sources" db=0.3ms idle=1085.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:59:49.604 [debug] QUERY OK source="media_items" db=3.1ms queue=0.1ms idle=1086.2ms 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 18:22:03Z], 36] 05:59:49.608 [debug] QUERY OK source="media_items" db=3.1ms queue=0.1ms idle=1089.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" ["Check out Neurosity to code with your brain waves - https://neurosity.co/fireship\n\nI gave Claude Code full access to my mind to find out if it's really possible to vibe code straight from the dome using the Neurosity Crown. Let's run it...\n\n#coding #programming #tech\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://docs.neurosity.co/docs/overview/\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- What is the Neurosity Crown?\n- How the Neurosity Crown works\n- Building a Claude Clode with my mind\n- Neurosity SDK", "This neural interface writes code from my brain waves…", "0e6d44b1-c598-49de-a7ff-d021be8582db", "4bQ2qhfJUjA", 242, false, "https://www.youtube.com/watch?v=4bQ2qhfJUjA", 17, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e111200_This neural interface writes code from my brain waves….mp4", false, false, false, 36, [], 98, ~U[2025-11-12 18:22:03Z], ~U[2026-03-01 11:59:49Z], ~U[2026-03-01 11:59:49Z], "Check out Neurosity to code with your brain waves - https://neurosity.co/fireship\n\nI gave Claude Code full access to my mind to find out if it's really possible to vibe code straight from the dome using the Neurosity Crown. Let's run it...\n\n#coding #programming #tech\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://docs.neurosity.co/docs/overview/\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- What is the Neurosity Crown?\n- How the Neurosity Crown works\n- Building a Claude Clode with my mind\n- Neurosity SDK", "This neural interface writes code from my brain waves…", "4bQ2qhfJUjA", 242, false, "https://www.youtube.com/watch?v=4bQ2qhfJUjA", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e111200_This neural interface writes code from my brain waves….mp4", false, 36, ~U[2025-11-12 18:22:03Z]] 05:59:49.608 [debug] QUERY OK source="sources" db=0.4ms idle=165.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] 05:59:49.609 [debug] QUERY OK source="media_profiles" db=0.3ms idle=9.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] 05:59:49.610 [debug] QUERY OK source="media_items" db=0.5ms 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 [1518722] 05:59:49.610 [debug] Current batch of media processed. Will check again in 1000ms 05:59:50.611 [debug] Current batch of media processed. Will check again in 1000ms 05:59:51.612 [debug] Current batch of media processed. Will check again in 1000ms 05:59:52.613 [debug] Current batch of media processed. Will check again in 1000ms 05:59:53.614 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Test drive the Kiro AI IDE for free - https://fandf.co/3IG1vCK\n\nRippleJS is a TypeScript UI framework that combines the best parts of React, Solid, and Svelte into one package. Let's run it...\n\n#coding #programming #webdevelopment \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://www.ripplejs.com/\n\n📚 Chapters\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n\n- Who is Dominic Gannaway?\n- What is RippleJS?\n- Ripple key features\n- Typescript", "duration" => 228, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e110600_This new JS framework wants you to quit React….mp4", "id" => "IIj9UWpvSFI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=IIj9UWpvSFI", "playlist_index" => 18, "timestamp" => 1762452081, "title" => "This new JS framework wants you to quit React…", "upload_date" => "20251106"} 05:59:53.615 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=162.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 (?)) [36] 05:59:53.616 [debug] QUERY OK source="sources" db=0.3ms idle=101.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:59:53.620 [debug] QUERY OK source="media_items" db=3.1ms idle=102.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-06 18:01:21Z], 36] 05:59:53.623 [debug] QUERY OK source="media_items" db=2.8ms idle=106.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" ["Test drive the Kiro AI IDE for free - https://fandf.co/3IG1vCK\n\nRippleJS is a TypeScript UI framework that combines the best parts of React, Solid, and Svelte into one package. Let's run it...\n\n#coding #programming #webdevelopment \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://www.ripplejs.com/\n\n📚 Chapters\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n\n- Who is Dominic Gannaway?\n- What is RippleJS?\n- Ripple key features\n- Typescript", "This new JS framework wants you to quit React…", "3db2eccf-3803-41b2-8ca6-497cc51357ae", "IIj9UWpvSFI", 228, false, "https://www.youtube.com/watch?v=IIj9UWpvSFI", 18, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e110600_This new JS framework wants you to quit React….mp4", false, false, false, 36, [], 98, ~U[2025-11-06 18:01:21Z], ~U[2026-03-01 11:59:53Z], ~U[2026-03-01 11:59:53Z], "Test drive the Kiro AI IDE for free - https://fandf.co/3IG1vCK\n\nRippleJS is a TypeScript UI framework that combines the best parts of React, Solid, and Svelte into one package. Let's run it...\n\n#coding #programming #webdevelopment \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://www.ripplejs.com/\n\n📚 Chapters\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n\n- Who is Dominic Gannaway?\n- What is RippleJS?\n- Ripple key features\n- Typescript", "This new JS framework wants you to quit React…", "IIj9UWpvSFI", 228, false, "https://www.youtube.com/watch?v=IIj9UWpvSFI", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e110600_This new JS framework wants you to quit React….mp4", false, 36, ~U[2025-11-06 18:01:21Z]] 05:59:53.624 [debug] QUERY OK source="sources" db=0.5ms queue=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] 05:59:53.625 [debug] QUERY OK source="media_profiles" db=0.5ms idle=9.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] 05:59:53.626 [debug] QUERY OK source="media_items" db=0.5ms idle=9.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 [1471723] 05:59:53.626 [debug] Current batch of media processed. Will check again in 1000ms 05:59:54.627 [debug] Current batch of media processed. Will check again in 1000ms 05:59:55.628 [debug] Current batch of media processed. Will check again in 1000ms 05:59:56.629 [debug] Current batch of media processed. Will check again in 1000ms 05:59:57.630 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Build better apps with PostHog - https://posthog.com/fireship\n\nCursor, the IDE of choice for any self-respecting vibe engineer, just released version 2.0.\n\nIn today's video, we'll take a first look at 5 new features every developer should know about.\n\n#coding #programming #ai\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://cursor.com/blog/2-0\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- Cursor 2.0 First Look\n- Cursor Composer 1\n- Agent Layout\n- Native Browser\n- Parallel Agents\n- In-editor Bugbot", "duration" => 276, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e103000_Cursor 2.0 is here... 5 things you didn't know it can do.mp4", "id" => "HIp8sFB2GGw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=HIp8sFB2GGw", "playlist_index" => 19, "timestamp" => 1761844039, "title" => "Cursor 2.0 is here... 5 things you didn't know it can do", "upload_date" => "20251030"} 05:59:57.631 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [36] 05:59:57.632 [debug] QUERY OK source="sources" db=0.4ms idle=117.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 05:59:57.636 [debug] QUERY OK source="media_items" db=3.4ms idle=118.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-30 17:07:19Z], 36] 05:59:57.639 [debug] QUERY OK source="media_items" db=2.0ms idle=122.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" ["Build better apps with PostHog - https://posthog.com/fireship\n\nCursor, the IDE of choice for any self-respecting vibe engineer, just released version 2.0.\n\nIn today's video, we'll take a first look at 5 new features every developer should know about.\n\n#coding #programming #ai\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://cursor.com/blog/2-0\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- Cursor 2.0 First Look\n- Cursor Composer 1\n- Agent Layout\n- Native Browser\n- Parallel Agents\n- In-editor Bugbot", "Cursor 2.0 is here... 5 things you didn't know it can do", "a319ca90-550f-4e33-8243-ea1fa947fdca", "HIp8sFB2GGw", 276, false, "https://www.youtube.com/watch?v=HIp8sFB2GGw", 19, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e103000_Cursor 2.0 is here... 5 things you didn't know it can do.mp4", false, false, false, 36, [], 98, ~U[2025-10-30 17:07:19Z], ~U[2026-03-01 11:59:57Z], ~U[2026-03-01 11:59:57Z], "Build better apps with PostHog - https://posthog.com/fireship\n\nCursor, the IDE of choice for any self-respecting vibe engineer, just released version 2.0.\n\nIn today's video, we'll take a first look at 5 new features every developer should know about.\n\n#coding #programming #ai\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://cursor.com/blog/2-0\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- Cursor 2.0 First Look\n- Cursor Composer 1\n- Agent Layout\n- Native Browser\n- Parallel Agents\n- In-editor Bugbot", "Cursor 2.0 is here... 5 things you didn't know it can do", "HIp8sFB2GGw", 276, false, "https://www.youtube.com/watch?v=HIp8sFB2GGw", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e103000_Cursor 2.0 is here... 5 things you didn't know it can do.mp4", false, 36, ~U[2025-10-30 17:07:19Z]] 05:59:57.640 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=124.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 05:59:57.640 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 05:59:57.641 [debug] QUERY OK source="media_items" db=0.4ms 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 [1417261] 05:59:57.641 [debug] Current batch of media processed. Will check again in 1000ms 05:59:58.642 [debug] Current batch of media processed. Will check again in 1000ms 05:59:59.643 [debug] Current batch of media processed. Will check again in 1000ms 06:00:00.130 [info] {"source":"oban","duration":371,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:00:00.644 [debug] Current batch of media processed. Will check again in 1000ms 06:00:00.955 [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/38/69/386927a568bf07efc5e264d2833952ef189bd0477a2760a4056bef771ce04bc1.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/90/d5/90d5bde7501c501f4667763e10d00be24cc55b03967f5c03fafc131ae76613e7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 06:00:00.956 [debug] Gracefully stopping file follower 06:00:00.957 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1442.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 06:00:00.958 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1443.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:00:00.964 [debug] QUERY OK source="media_items" db=5.2ms idle=1444.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-26 18:26:18Z], 36] 06:00:00.968 [debug] QUERY OK source="media_items" db=2.7ms idle=834.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...", "7bd79e47-e99e-47b8-b9b8-3446e255dfd5", "wzzh7Not8XE", 398, false, "https://www.youtube.com/watch?v=wzzh7Not8XE", 1, "/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-03-01 12:00:00Z], ~U[2026-03-01 12:00:00Z], "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]] 06:00:00.969 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=501.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:00:00.974 [debug] QUERY OK source="media_items" db=4.4ms queue=0.1ms idle=12.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 18:20:25Z], 36] 06:00:00.978 [debug] QUERY OK source="media_items" db=2.6ms queue=0.1ms idle=17.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" ["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", "039dfd25-2b76-49a3-a147-acb18859e583", "1fUBWAETmkk", 138, false, "https://www.youtube.com/watch?v=1fUBWAETmkk", 2, "/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-03-01 12:00:00Z], ~U[2026-03-01 12:00:00Z], "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]] 06:00:00.980 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=15.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:00:00.986 [debug] QUERY OK source="media_items" db=5.5ms idle=12.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-17 18:17:11Z], 36] 06:00:00.990 [debug] QUERY OK source="media_items" db=3.2ms queue=0.1ms idle=17.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" ["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...", "842ac090-6272-4235-89ff-9c96b0934dd5", "cxcb55zr2Q8", 302, false, "https://www.youtube.com/watch?v=cxcb55zr2Q8", 3, "/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-03-01 12:00:00Z], ~U[2026-03-01 12:00:00Z], "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]] 06:00:00.992 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms idle=16.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] 06:00:00.997 [debug] QUERY OK source="media_items" db=4.2ms idle=14.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 16:47:38Z], 36] 06:00:01.001 [debug] QUERY OK source="media_items" db=3.2ms idle=17.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 up to 67% off Kali Linux VPS hosting with Hostinger’s one-click template. Use code FIRESHIP for an extra discount - https://hostinger.com/fireship\n\nLet's learn the fundamentals of penetration testing and ethical hacking tools by running 10 free and open source tools on Kali Linux.\n\nIf some of these tools feel illegal, that's because they could be if used without consent. Never use these tools on a website or network without permission. \n\n#coding #programming #hacking #ethicalhacking \n\n🔗 Resources\n- https://www.kali.org/tools/\n\n🔥 Brain food for developers\n- https://fireship.dev\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n\n- Ethical hacking\n- Penetration Testing\n- Kali Linux\n- NMAP\n- Wireshark\n- Metasploit\n- Aircrack-ng\n- HashCat\n- Skip Fish\n- SQL Map\n- hPing3\n- Social Engineering Toolkit", "10 open source tools that feel illegal...", "c3082989-6e6c-437e-b965-4e6f8732cd63", "Ukt2gVz25PQ", 603, false, "https://www.youtube.com/watch?v=Ukt2gVz25PQ", 4, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e020500_10 open source tools that feel illegal....mp4", false, false, false, 36, [], 98, ~U[2026-02-05 16:47:38Z], ~U[2026-03-01 12:00:00Z], ~U[2026-03-01 12:00:00Z], "Get up to 67% off Kali Linux VPS hosting with Hostinger’s one-click template. Use code FIRESHIP for an extra discount - https://hostinger.com/fireship\n\nLet's learn the fundamentals of penetration testing and ethical hacking tools by running 10 free and open source tools on Kali Linux.\n\nIf some of these tools feel illegal, that's because they could be if used without consent. Never use these tools on a website or network without permission. \n\n#coding #programming #hacking #ethicalhacking \n\n🔗 Resources\n- https://www.kali.org/tools/\n\n🔥 Brain food for developers\n- https://fireship.dev\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n\n- Ethical hacking\n- Penetration Testing\n- Kali Linux\n- NMAP\n- Wireshark\n- Metasploit\n- Aircrack-ng\n- HashCat\n- Skip Fish\n- SQL Map\n- hPing3\n- Social Engineering Toolkit", "10 open source tools that feel illegal...", "Ukt2gVz25PQ", 603, false, "https://www.youtube.com/watch?v=Ukt2gVz25PQ", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e020500_10 open source tools that feel illegal....mp4", false, 36, ~U[2026-02-05 16:47:38Z]] 06:00:01.003 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=16.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:00:01.008 [debug] QUERY OK source="media_items" db=4.6ms queue=0.1ms idle=13.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-30 15:56:36Z], 36] 06:00:01.013 [debug] QUERY OK source="media_items" db=3.4ms idle=16.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 orchestration tool to make your coding agents smarter - https://traycer.ai/fireship\n\nDeploy OpenClaw on a Hostinger VPS in one click. Use code FIRESHIP to get 67% off - http://hostinger.com/fireshipopenclaw\n\nCheck out their free guide on how to install OpenClaw - https://www.hostinger.com/support/how-to-install-openclaw-on-hostinger-vps/\n\nOpenClaw fka Moltbot fka ClawdBot is the most hyped AI application of 2026. But this isn't your average chatbot - it's a free and open source assistant that actually takes care of your everyday tasks. Let's run it.\n\n#coding #ai #programming #clawdbot #moltbot\n\n🔗 Resources\n- https://openclaw.ai/\n- https://github.com/openclaw/openclaw\n\n🔥 Brain food for developers\n- https://fireship.dev\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- ClawdBot vs Claude\n- What is OpenClaw?\n- Who is Peter Steinberger?\n- OpenClaw setup\n- OpenClaw Telegram demo", "The wild rise of OpenClaw...", "3332490b-27b1-40c0-a35d-915c57dadb34", "ssYt09bCgUY", 318, false, "https://www.youtube.com/watch?v=ssYt09bCgUY", 5, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e013000_The wild rise of OpenClaw....mp4", false, false, false, 36, [], 98, ~U[2026-01-30 15:56:36Z], ~U[2026-03-01 12:00:01Z], ~U[2026-03-01 12:00:01Z], "Try out Traycer’s orchestration tool to make your coding agents smarter - https://traycer.ai/fireship\n\nDeploy OpenClaw on a Hostinger VPS in one click. Use code FIRESHIP to get 67% off - http://hostinger.com/fireshipopenclaw\n\nCheck out their free guide on how to install OpenClaw - https://www.hostinger.com/support/how-to-install-openclaw-on-hostinger-vps/\n\nOpenClaw fka Moltbot fka ClawdBot is the most hyped AI application of 2026. But this isn't your average chatbot - it's a free and open source assistant that actually takes care of your everyday tasks. Let's run it.\n\n#coding #ai #programming #clawdbot #moltbot\n\n🔗 Resources\n- https://openclaw.ai/\n- https://github.com/openclaw/openclaw\n\n🔥 Brain food for developers\n- https://fireship.dev\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- ClawdBot vs Claude\n- What is OpenClaw?\n- Who is Peter Steinberger?\n- OpenClaw setup\n- OpenClaw Telegram demo", "The wild rise of OpenClaw...", "ssYt09bCgUY", 318, false, "https://www.youtube.com/watch?v=ssYt09bCgUY", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e013000_The wild rise of OpenClaw....mp4", false, 36, ~U[2026-01-30 15:56:36Z]] 06:00:01.014 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=16.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:00:01.020 [debug] QUERY OK source="media_items" db=5.1ms queue=0.1ms idle=13.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-22 19:14:29Z], 36] 06:00:01.025 [debug] QUERY OK source="media_items" db=3.1ms queue=0.1ms idle=18.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" ["Bun is a mega-fast JavaScript runtime for developers who want to nope out of their node modules folder. Let's run bun run. \n\n#coding #programming #softwaredevelopment \n\n🔗 Resources\n- https://bun.com/docs\n\n📚 Chapters\n\n🔥 Brain food for developers\n- https://fireship.dev\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- The history of JavaScript runtimes\n- What is Bun?\n- How does Bun work?\n- Bun demo", "Bun in 100 Seconds", "32be5a48-d6f2-4306-a134-f3d70bf65689", "M4TufsFlv_o", 166, false, "https://www.youtube.com/watch?v=M4TufsFlv_o", 6, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e012200_Bun in 100 Seconds.mp4", false, false, false, 36, [], 98, ~U[2026-01-22 19:14:29Z], ~U[2026-03-01 12:00:01Z], ~U[2026-03-01 12:00:01Z], "Bun is a mega-fast JavaScript runtime for developers who want to nope out of their node modules folder. Let's run bun run. \n\n#coding #programming #softwaredevelopment \n\n🔗 Resources\n- https://bun.com/docs\n\n📚 Chapters\n\n🔥 Brain food for developers\n- https://fireship.dev\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- The history of JavaScript runtimes\n- What is Bun?\n- How does Bun work?\n- Bun demo", "Bun in 100 Seconds", "M4TufsFlv_o", 166, false, "https://www.youtube.com/watch?v=M4TufsFlv_o", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e012200_Bun in 100 Seconds.mp4", false, 36, ~U[2026-01-22 19:14:29Z]] 06:00:01.026 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=17.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:00:01.032 [debug] QUERY OK source="media_items" db=5.4ms idle=14.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-20 17:58:16Z], 36] 06:00:01.045 [debug] QUERY OK source="media_items" db=10.8ms idle=18.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 the Junie coding agent in your JetBrains IDE - https://jb.gg/Fireship-Junie-AI\n\nComputing has come a long way since we figured out that 1s and 0s were pretty useful. In today's video, we look at the history of programming from the Turing machine to modern JavaScript...\n\n#coding #programming #tech #softwaredevelopment \n\n🔥 Brain food for developers\n- https://fireship.dev\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- Alan Turing\n- Werner Buchholz\n- Kathleen Booth\n- John McCarthey\n- Edsger Dijkstra\n- Dennis Ritchie\n- Ken Thompson\n- Bjarne Stroustrup\n- Anders Hejlsberg\n- Guido Van Rossum\n- James Gosling\n- Brendan Eich", "A brief history of programming...", "28f3f711-f977-44a0-aa7a-0bfe1e34ccbc", "9uW6B9LPntY", 369, false, "https://www.youtube.com/watch?v=9uW6B9LPntY", 7, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e012000_A brief history of programming....mp4", false, false, false, 36, [], 98, ~U[2026-01-20 17:58:16Z], ~U[2026-03-01 12:00:01Z], ~U[2026-03-01 12:00:01Z], "Try out the Junie coding agent in your JetBrains IDE - https://jb.gg/Fireship-Junie-AI\n\nComputing has come a long way since we figured out that 1s and 0s were pretty useful. In today's video, we look at the history of programming from the Turing machine to modern JavaScript...\n\n#coding #programming #tech #softwaredevelopment \n\n🔥 Brain food for developers\n- https://fireship.dev\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- Alan Turing\n- Werner Buchholz\n- Kathleen Booth\n- John McCarthey\n- Edsger Dijkstra\n- Dennis Ritchie\n- Ken Thompson\n- Bjarne Stroustrup\n- Anders Hejlsberg\n- Guido Van Rossum\n- James Gosling\n- Brendan Eich", "A brief history of programming...", "9uW6B9LPntY", 369, false, "https://www.youtube.com/watch?v=9uW6B9LPntY", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e012000_A brief history of programming....mp4", false, 36, ~U[2026-01-20 17:58:16Z]] 06:00:01.047 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 06:00:01.053 [debug] QUERY OK source="media_items" db=5.8ms queue=0.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-01-16 17:03:35Z], 36] 06:00:01.060 [debug] QUERY OK source="media_items" db=4.8ms queue=0.1ms idle=28.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" [".NET is a free and open-source platform for creating high-performance software in virtually every domain, powered primarily by the C# programming language.\n\n#coding #programming #softwaredevelopment \n\n🔗 Resources\n- https://learn.microsoft.com/en-us/dotnet/\n\n🔥 Brain food for developers\n- https://fireship.dev\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n\n- The history of .NET\n- .NET explained\n- The .Net ecosystem\n- What can you build in .NET?\n- .NET demo", ".NET in 100 Seconds", "ea45a753-9afd-481d-8691-d794272f0d62", "MFsYaRnrcPQ", 164, false, "https://www.youtube.com/watch?v=MFsYaRnrcPQ", 8, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e011600_.NET in 100 Seconds.mp4", false, false, false, 36, [], 98, ~U[2026-01-16 17:03:35Z], ~U[2026-03-01 12:00:01Z], ~U[2026-03-01 12:00:01Z], ".NET is a free and open-source platform for creating high-performance software in virtually every domain, powered primarily by the C# programming language.\n\n#coding #programming #softwaredevelopment \n\n🔗 Resources\n- https://learn.microsoft.com/en-us/dotnet/\n\n🔥 Brain food for developers\n- https://fireship.dev\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n\n- The history of .NET\n- .NET explained\n- The .Net ecosystem\n- What can you build in .NET?\n- .NET demo", ".NET in 100 Seconds", "MFsYaRnrcPQ", 164, false, "https://www.youtube.com/watch?v=MFsYaRnrcPQ", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e011600_.NET in 100 Seconds.mp4", false, 36, ~U[2026-01-16 17:03:35Z]] 06:00:01.062 [debug] QUERY OK source="sources" db=1.5ms queue=0.2ms idle=28.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:00:01.069 [debug] QUERY OK source="media_items" db=5.7ms queue=0.1ms idle=18.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-14 19:01:19Z], 36] 06:00:01.075 [debug] QUERY OK source="media_items" db=4.9ms queue=0.1ms idle=22.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\nFrom household robots to quantum computing... In today's video, we'll look at 10 technology trends that are set to define 2026 for developers. \n\n#tech #coding #programming #ai \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n\n- Developer Job Market\n- AI Bubble\n- Robotics\n- Wearable AI\n- AR / VR\n- Chip Dominance\n- Nuclear Power\n- Quantum Computing\n- Digital Tyranny\n- Javascript", "The unhinged world of tech in 2026...", "b0b9de81-613e-41cc-a5fa-4bb09cda7090", "EKOU3JWDNLI", 550, false, "https://www.youtube.com/watch?v=EKOU3JWDNLI", 9, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e011400_The unhinged world of tech in 2026....mp4", false, false, false, 36, [], 98, ~U[2026-01-14 19:01:19Z], ~U[2026-03-01 12:00:01Z], ~U[2026-03-01 12:00:01Z], "Try Brilliant for free for 30 days - https://brilliant.org/fireship and get 20% off a premium annual subscription.\n\nFrom household robots to quantum computing... In today's video, we'll look at 10 technology trends that are set to define 2026 for developers. \n\n#tech #coding #programming #ai \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n\n- Developer Job Market\n- AI Bubble\n- Robotics\n- Wearable AI\n- AR / VR\n- Chip Dominance\n- Nuclear Power\n- Quantum Computing\n- Digital Tyranny\n- Javascript", "The unhinged world of tech in 2026...", "EKOU3JWDNLI", 550, false, "https://www.youtube.com/watch?v=EKOU3JWDNLI", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2026/s2026e011400_The unhinged world of tech in 2026....mp4", false, 36, ~U[2026-01-14 19:01:19Z]] 06:00:01.078 [debug] QUERY OK source="sources" db=1.7ms queue=0.1ms idle=22.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:00:01.085 [debug] QUERY OK source="media_items" db=6.3ms queue=0.2ms idle=18.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-12 22:19:10Z], 36] 06:00:01.091 [debug] QUERY OK source="media_items" db=4.3ms queue=0.1ms idle=23.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" ["Deploying on Railway feels like magic. Get $20 in free credits to try it out - https://railway.com/?referralCode=fireship\n\nSam Altman declared a code red, and OpenAI responded. GPT-5.2 is now at the top of most leaderboards and benchmarks, but is this actually getting us closer to real AGI, or is it just more smoke and mirrors to keep the hype train going?\n\n#Coding #AI #OpenAI #ChatGPT\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://openai.com/index/introducing-gpt-5-2/\n\n📚 Chapters\n- Sam Altman’s Code Red Aarm\n- GPT 5.2 Arc Benchmarks\n- OpenAI Disney Deal\n- McDonalds AI Commercial\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered", "OpenAI was dead… Then GPT-5.2 dropped", "e1e112f9-ee0e-4ce2-bcae-2ded0a9beb83", "rEvEXQvo-F8", 241, false, "https://www.youtube.com/watch?v=rEvEXQvo-F8", 10, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e121200_OpenAI was dead… Then GPT-5.2 dropped.mp4", false, false, false, 36, [], 98, ~U[2025-12-12 22:19:10Z], ~U[2026-03-01 12:00:01Z], ~U[2026-03-01 12:00:01Z], "Deploying on Railway feels like magic. Get $20 in free credits to try it out - https://railway.com/?referralCode=fireship\n\nSam Altman declared a code red, and OpenAI responded. GPT-5.2 is now at the top of most leaderboards and benchmarks, but is this actually getting us closer to real AGI, or is it just more smoke and mirrors to keep the hype train going?\n\n#Coding #AI #OpenAI #ChatGPT\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://openai.com/index/introducing-gpt-5-2/\n\n📚 Chapters\n- Sam Altman’s Code Red Aarm\n- GPT 5.2 Arc Benchmarks\n- OpenAI Disney Deal\n- McDonalds AI Commercial\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered", "OpenAI was dead… Then GPT-5.2 dropped", "rEvEXQvo-F8", 241, false, "https://www.youtube.com/watch?v=rEvEXQvo-F8", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e121200_OpenAI was dead… Then GPT-5.2 dropped.mp4", false, 36, ~U[2025-12-12 22:19:10Z]] 06:00:01.093 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=22.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] 06:00:01.100 [debug] QUERY OK source="media_items" db=6.5ms queue=0.3ms idle=18.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-09 19:58:38Z], 36] 06:00:01.107 [debug] QUERY OK source="media_items" db=4.3ms queue=0.1ms idle=23.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 Genspark’s all-in-one AI workspace for free - https://www.genspark.ai/?utm_source=yt&utm_campaign=fireship\n\nThe JavaScript world just got rocked by a 10.0 critical vulnerability called React2Shell (a.k.a. CVE-2025-55182). Let's find out how this React exploit actually works...\n\n#Coding #programming #javascript #react \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://github.com/facebook/react/security/advisories/GHSA-fv66-9v8q-g76r\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n\n- What is React2Shell?\n- CVE-2025-55182 explained\n- React Flight\n- Which React devs are affected?\n- What should you do?", "React.js shell shocked by 10.0 critical vulnerability…", "3a76be19-3947-470f-807b-a54c0ab882ff", "QLK9G5zyU-Q", 236, false, "https://www.youtube.com/watch?v=QLK9G5zyU-Q", 11, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e120900_React.js shell shocked by 10.0 critical vulnerability….mp4", false, false, false, 36, [], 98, ~U[2025-12-09 19:58:38Z], ~U[2026-03-01 12:00:01Z], ~U[2026-03-01 12:00:01Z], "Try out Genspark’s all-in-one AI workspace for free - https://www.genspark.ai/?utm_source=yt&utm_campaign=fireship\n\nThe JavaScript world just got rocked by a 10.0 critical vulnerability called React2Shell (a.k.a. CVE-2025-55182). Let's find out how this React exploit actually works...\n\n#Coding #programming #javascript #react \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://github.com/facebook/react/security/advisories/GHSA-fv66-9v8q-g76r\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n\n- What is React2Shell?\n- CVE-2025-55182 explained\n- React Flight\n- Which React devs are affected?\n- What should you do?", "React.js shell shocked by 10.0 critical vulnerability…", "QLK9G5zyU-Q", 236, false, "https://www.youtube.com/watch?v=QLK9G5zyU-Q", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e120900_React.js shell shocked by 10.0 critical vulnerability….mp4", false, 36, ~U[2025-12-09 19:58:38Z]] 06:00:01.109 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 06:00:01.115 [debug] QUERY OK source="media_items" db=5.6ms queue=0.1ms idle=18.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-05 21:43:51Z], 36] 06:00:01.121 [debug] QUERY OK source="media_items" db=4.2ms queue=0.1ms idle=22.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 Brilliant for free - https://brilliant.org/fireship and get 20% off a premium annual subscription\n\nAnthropic just bought Bun - the super fast JavaScript runtime that's universally loved by developers. In today's video, we'll break down why they did it, how Bun got here, and what their marriage might look like.\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\nhttps://bun.com/blog/bun-joins-anthropic\nhttps://www.anthropic.com/news/anthropic-acquires-bun-as-claude-code-reaches-usd1b-milestone\n\n📚 Chapters\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered", "Anthropic just bought your favorite JS runtime...", "df4a531d-ffb6-4634-bbfc-0a863833aaf2", "5JMiNsV7P3Y", 242, false, "https://www.youtube.com/watch?v=5JMiNsV7P3Y", 12, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e120500_Anthropic just bought your favorite JS runtime....mp4", false, false, false, 36, [], 98, ~U[2025-12-05 21:43:51Z], ~U[2026-03-01 12:00:01Z], ~U[2026-03-01 12:00:01Z], "Try Brilliant for free - https://brilliant.org/fireship and get 20% off a premium annual subscription\n\nAnthropic just bought Bun - the super fast JavaScript runtime that's universally loved by developers. In today's video, we'll break down why they did it, how Bun got here, and what their marriage might look like.\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\nhttps://bun.com/blog/bun-joins-anthropic\nhttps://www.anthropic.com/news/anthropic-acquires-bun-as-claude-code-reaches-usd1b-milestone\n\n📚 Chapters\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered", "Anthropic just bought your favorite JS runtime...", "5JMiNsV7P3Y", 242, false, "https://www.youtube.com/watch?v=5JMiNsV7P3Y", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e120500_Anthropic just bought your favorite JS runtime....mp4", false, 36, ~U[2025-12-05 21:43:51Z]] 06:00:01.123 [debug] QUERY OK source="sources" db=1.5ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 06:00:01.130 [debug] QUERY OK source="media_items" db=5.8ms queue=0.1ms idle=18.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-26 18:20:32Z], 36] 06:00:01.136 [debug] QUERY OK source="media_items" db=4.1ms queue=0.1ms idle=22.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 up to 67% off Docker VPS to self-host your own app. Use code FIRESHIP for an extra discount - https://hostinger.com/fireshipdocker\n\nEarlier this year, Coinbase changed online payments forever with a new protocol called x402. But could this technology really usher in a new age of 'machine to machine' payments? Let's run it...\n\n#ai #programming #coding \n\n💬 Chat with Me on Discord\n- https://discord.gg/fireship\n\n🔗 Resources\n- https://www.x402.org/\n- https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/402\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- HTTP 402 Status Code\n- x402\n- x402 vs Stripe\n- Machine to machine payments\n- x402 demo", "AI agents are paying each other now…", "fe320e5d-759c-46eb-9e4e-5c784f57b1fc", "S6wc6yvoZLY", 290, false, "https://www.youtube.com/watch?v=S6wc6yvoZLY", 13, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e112600_AI agents are paying each other now….mp4", false, false, false, 36, [], 98, ~U[2025-11-26 18:20:32Z], ~U[2026-03-01 12:00:01Z], ~U[2026-03-01 12:00:01Z], "Get up to 67% off Docker VPS to self-host your own app. Use code FIRESHIP for an extra discount - https://hostinger.com/fireshipdocker\n\nEarlier this year, Coinbase changed online payments forever with a new protocol called x402. But could this technology really usher in a new age of 'machine to machine' payments? Let's run it...\n\n#ai #programming #coding \n\n💬 Chat with Me on Discord\n- https://discord.gg/fireship\n\n🔗 Resources\n- https://www.x402.org/\n- https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/402\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- HTTP 402 Status Code\n- x402\n- x402 vs Stripe\n- Machine to machine payments\n- x402 demo", "AI agents are paying each other now…", "S6wc6yvoZLY", 290, false, "https://www.youtube.com/watch?v=S6wc6yvoZLY", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e112600_AI agents are paying each other now….mp4", false, 36, ~U[2025-11-26 18:20:32Z]] 06:00:01.138 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=21.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] 06:00:01.144 [debug] QUERY OK source="media_items" db=5.3ms queue=0.1ms idle=18.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-21 19:26:50Z], 36] 06:00:01.149 [debug] QUERY OK source="media_items" db=3.5ms queue=0.1ms idle=21.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 20% off Mobbin Pro to make your apps not ugly - https://mobbin.com/fireship\n\nGemini 3 may have just put Google in prime position to have the best-performing AI model by the end of the year. But how powerful is it really?\n\n#ai #coding #tech \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://blog.google/products/gemini/gemini-3/\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- Gemini 3 release\n- Gemini 3 benchmarks\n- Google Antigravity", "Did Google just kill OpenAI?", "8bc1be9d-85fa-44e6-99f6-d7a0ec61b1bf", "bsL7ZnKIAhs", 246, false, "https://www.youtube.com/watch?v=bsL7ZnKIAhs", 14, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e112100_Did Google just kill OpenAI?.mp4", false, false, false, 36, [], 98, ~U[2025-11-21 19:26:50Z], ~U[2026-03-01 12:00:01Z], ~U[2026-03-01 12:00:01Z], "Get 20% off Mobbin Pro to make your apps not ugly - https://mobbin.com/fireship\n\nGemini 3 may have just put Google in prime position to have the best-performing AI model by the end of the year. But how powerful is it really?\n\n#ai #coding #tech \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://blog.google/products/gemini/gemini-3/\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- Gemini 3 release\n- Gemini 3 benchmarks\n- Google Antigravity", "Did Google just kill OpenAI?", "bsL7ZnKIAhs", 246, false, "https://www.youtube.com/watch?v=bsL7ZnKIAhs", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e112100_Did Google just kill OpenAI?.mp4", false, 36, ~U[2025-11-21 19:26:50Z]] 06:00:01.151 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=19.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] 06:00:01.157 [debug] QUERY OK source="media_items" db=5.1ms idle=16.1ms 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 18:14:26Z], 36] 06:00:01.162 [debug] QUERY OK source="media_items" db=3.5ms idle=19.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" ["Break prod less with Sentry’s AI Code Review - https://sentry.io/fireship\n\nThis week, it was Cloudflare's turn to take down your favourite domain. In today's video, we'll try to find out why the internet keeps falling apart...\n\n#programming #coding #cloudflare \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://blog.cloudflare.com/18-november-2025-outage/\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- Cloudflare outage explained\n- Which sites were affected\n- Why is the internet falling apart?", "The entire internet just crashed... again", "a7f39119-0583-4920-bd03-eab7208b99f7", "tF_4baiIUiQ", 190, false, "https://www.youtube.com/watch?v=tF_4baiIUiQ", 15, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e111900_The entire internet just crashed... again.mp4", false, false, false, 36, [], 98, ~U[2025-11-19 18:14:26Z], ~U[2026-03-01 12:00:01Z], ~U[2026-03-01 12:00:01Z], "Break prod less with Sentry’s AI Code Review - https://sentry.io/fireship\n\nThis week, it was Cloudflare's turn to take down your favourite domain. In today's video, we'll try to find out why the internet keeps falling apart...\n\n#programming #coding #cloudflare \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://blog.cloudflare.com/18-november-2025-outage/\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- Cloudflare outage explained\n- Which sites were affected\n- Why is the internet falling apart?", "The entire internet just crashed... again", "tF_4baiIUiQ", 190, false, "https://www.youtube.com/watch?v=tF_4baiIUiQ", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e111900_The entire internet just crashed... again.mp4", false, 36, ~U[2025-11-19 18:14:26Z]] 06:00:01.164 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms 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" = ?) [36] 06:00:01.170 [debug] QUERY OK source="media_items" db=5.2ms queue=0.1ms idle=15.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-14 18:30:07Z], 36] 06:00:01.176 [debug] QUERY OK source="media_items" db=3.9ms queue=0.1ms idle=19.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 Brilliant for free - https://brilliant.org/fireship and get 20% off a premium annual subscription\n\nValve just dropped the Steam Machine - a console-like gaming pc that runs Arch under the hood. In today's video, we'll break down the details and ask if 2026 will finally be the year of the Linux desktop. \n\n#coding #linux #steam #steamos #valve \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://store.steampowered.com/sale/steammachine\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- Valve Announce the Steam Machine\n- What is SteamOS\n- Proton Compatibility Layer\n- Will it run GTA6?", "The gaming console wars just got weird...", "ba964ab7-f7b2-4716-b0b7-9999b413e035", "Q8QdKRbC1O0", 235, false, "https://www.youtube.com/watch?v=Q8QdKRbC1O0", 16, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e111400_The gaming console wars just got weird....mp4", false, false, false, 36, [], 98, ~U[2025-11-14 18:30:07Z], ~U[2026-03-01 12:00:01Z], ~U[2026-03-01 12:00:01Z], "Try Brilliant for free - https://brilliant.org/fireship and get 20% off a premium annual subscription\n\nValve just dropped the Steam Machine - a console-like gaming pc that runs Arch under the hood. In today's video, we'll break down the details and ask if 2026 will finally be the year of the Linux desktop. \n\n#coding #linux #steam #steamos #valve \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://store.steampowered.com/sale/steammachine\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- Valve Announce the Steam Machine\n- What is SteamOS\n- Proton Compatibility Layer\n- Will it run GTA6?", "The gaming console wars just got weird...", "Q8QdKRbC1O0", 235, false, "https://www.youtube.com/watch?v=Q8QdKRbC1O0", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e111400_The gaming console wars just got weird....mp4", false, 36, ~U[2025-11-14 18:30:07Z]] 06:00:01.178 [debug] QUERY OK source="sources" db=1.4ms queue=0.2ms idle=19.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:00:01.184 [debug] QUERY OK source="media_items" db=5.1ms queue=0.1ms idle=16.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-12 18:22:03Z], 36] 06:00:01.189 [debug] QUERY OK source="media_items" db=3.5ms idle=20.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" ["Check out Neurosity to code with your brain waves - https://neurosity.co/fireship\n\nI gave Claude Code full access to my mind to find out if it's really possible to vibe code straight from the dome using the Neurosity Crown. Let's run it...\n\n#coding #programming #tech\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://docs.neurosity.co/docs/overview/\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- What is the Neurosity Crown?\n- How the Neurosity Crown works\n- Building a Claude Clode with my mind\n- Neurosity SDK", "This neural interface writes code from my brain waves…", "9a53f48a-eb03-4c9d-8e00-a88032aa839c", "4bQ2qhfJUjA", 242, false, "https://www.youtube.com/watch?v=4bQ2qhfJUjA", 17, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e111200_This neural interface writes code from my brain waves….mp4", false, false, false, 36, [], 98, ~U[2025-11-12 18:22:03Z], ~U[2026-03-01 12:00:01Z], ~U[2026-03-01 12:00:01Z], "Check out Neurosity to code with your brain waves - https://neurosity.co/fireship\n\nI gave Claude Code full access to my mind to find out if it's really possible to vibe code straight from the dome using the Neurosity Crown. Let's run it...\n\n#coding #programming #tech\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://docs.neurosity.co/docs/overview/\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- What is the Neurosity Crown?\n- How the Neurosity Crown works\n- Building a Claude Clode with my mind\n- Neurosity SDK", "This neural interface writes code from my brain waves…", "4bQ2qhfJUjA", 242, false, "https://www.youtube.com/watch?v=4bQ2qhfJUjA", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e111200_This neural interface writes code from my brain waves….mp4", false, 36, ~U[2025-11-12 18:22:03Z]] 06:00:01.190 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=19.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:00:01.196 [debug] QUERY OK source="media_items" db=4.8ms queue=0.1ms 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[2025-11-06 18:01:21Z], 36] 06:00:01.201 [debug] QUERY OK source="media_items" db=3.7ms queue=0.1ms idle=18.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" ["Test drive the Kiro AI IDE for free - https://fandf.co/3IG1vCK\n\nRippleJS is a TypeScript UI framework that combines the best parts of React, Solid, and Svelte into one package. Let's run it...\n\n#coding #programming #webdevelopment \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://www.ripplejs.com/\n\n📚 Chapters\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n\n- Who is Dominic Gannaway?\n- What is RippleJS?\n- Ripple key features\n- Typescript", "This new JS framework wants you to quit React…", "b24c5f87-6b9f-4df9-a791-c43d48d1d345", "IIj9UWpvSFI", 228, false, "https://www.youtube.com/watch?v=IIj9UWpvSFI", 18, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e110600_This new JS framework wants you to quit React….mp4", false, false, false, 36, [], 98, ~U[2025-11-06 18:01:21Z], ~U[2026-03-01 12:00:01Z], ~U[2026-03-01 12:00:01Z], "Test drive the Kiro AI IDE for free - https://fandf.co/3IG1vCK\n\nRippleJS is a TypeScript UI framework that combines the best parts of React, Solid, and Svelte into one package. Let's run it...\n\n#coding #programming #webdevelopment \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://www.ripplejs.com/\n\n📚 Chapters\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n\n- Who is Dominic Gannaway?\n- What is RippleJS?\n- Ripple key features\n- Typescript", "This new JS framework wants you to quit React…", "IIj9UWpvSFI", 228, false, "https://www.youtube.com/watch?v=IIj9UWpvSFI", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e110600_This new JS framework wants you to quit React….mp4", false, 36, ~U[2025-11-06 18:01:21Z]] 06:00:01.203 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=17.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 06:00:01.209 [debug] QUERY OK source="media_items" db=5.0ms queue=0.1ms idle=15.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-30 17:07:19Z], 36] 06:00:01.214 [debug] QUERY OK source="media_items" db=3.6ms idle=19.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" ["Build better apps with PostHog - https://posthog.com/fireship\n\nCursor, the IDE of choice for any self-respecting vibe engineer, just released version 2.0.\n\nIn today's video, we'll take a first look at 5 new features every developer should know about.\n\n#coding #programming #ai\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://cursor.com/blog/2-0\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- Cursor 2.0 First Look\n- Cursor Composer 1\n- Agent Layout\n- Native Browser\n- Parallel Agents\n- In-editor Bugbot", "Cursor 2.0 is here... 5 things you didn't know it can do", "9a315ae0-ed3e-402f-9f63-c3764107ef19", "HIp8sFB2GGw", 276, false, "https://www.youtube.com/watch?v=HIp8sFB2GGw", 19, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e103000_Cursor 2.0 is here... 5 things you didn't know it can do.mp4", false, false, false, 36, [], 98, ~U[2025-10-30 17:07:19Z], ~U[2026-03-01 12:00:01Z], ~U[2026-03-01 12:00:01Z], "Build better apps with PostHog - https://posthog.com/fireship\n\nCursor, the IDE of choice for any self-respecting vibe engineer, just released version 2.0.\n\nIn today's video, we'll take a first look at 5 new features every developer should know about.\n\n#coding #programming #ai\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://cursor.com/blog/2-0\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- Cursor 2.0 First Look\n- Cursor Composer 1\n- Agent Layout\n- Native Browser\n- Parallel Agents\n- In-editor Bugbot", "Cursor 2.0 is here... 5 things you didn't know it can do", "HIp8sFB2GGw", 276, false, "https://www.youtube.com/watch?v=HIp8sFB2GGw", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e103000_Cursor 2.0 is here... 5 things you didn't know it can do.mp4", false, 36, ~U[2025-10-30 17:07:19Z]] 06:00:01.216 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=18.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:00:01.221 [debug] QUERY OK source="media_items" db=4.9ms queue=0.1ms idle=15.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-29 18:10:55Z], 36] 06:00:01.227 [debug] QUERY OK source="media_items" db=3.8ms 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" ["Get up to 67% off VPS during Hostinger’s Black Friday sale. Use code FIRESHIP for an extra discount at https://hostinger.com/fireship\n\nThe Neo is a $20,000 a humanoid-robot wrapped in a onesie that can fold your laundry and clean up when you're hungover.\n\nBut this particular robot is only the beginning - 1x is just one of many companies with billions of VC dollars burning a hole in their pocket and they won't stop until they've ushered in the robot apocalypse. \n\n#robots #tech #coding #programming\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://www.1x.tech/neo\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- What is neo?\n- How neo works\n- Will robots replace blue-collar workers?\n- Who is investing in robotics?", "The humanoid-robot dystopia arrived early...", "b2ad8da4-ae85-4405-8ee0-f155d4421309", "q2czJLPJ4nA", 239, false, "https://www.youtube.com/watch?v=q2czJLPJ4nA", 20, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e102900_The humanoid-robot dystopia arrived early....mp4", false, false, false, 36, [], 98, ~U[2025-10-29 18:10:55Z], ~U[2026-03-01 12:00:01Z], ~U[2026-03-01 12:00:01Z], "Get up to 67% off VPS during Hostinger’s Black Friday sale. Use code FIRESHIP for an extra discount at https://hostinger.com/fireship\n\nThe Neo is a $20,000 a humanoid-robot wrapped in a onesie that can fold your laundry and clean up when you're hungover.\n\nBut this particular robot is only the beginning - 1x is just one of many companies with billions of VC dollars burning a hole in their pocket and they won't stop until they've ushered in the robot apocalypse. \n\n#robots #tech #coding #programming\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://www.1x.tech/neo\n\n🔥 Get More Content - Upgrade to PRO\n\nUpgrade at https://fireship.io/pro\nUse code YT25 for 25% off PRO access \n\n🎨 My Editor Settings\n\n- Atom One Dark \n- vscode-icons\n- Fira Code Font\n\n🔖 Topics Covered\n- What is neo?\n- How neo works\n- Will robots replace blue-collar workers?\n- Who is investing in robotics?", "The humanoid-robot dystopia arrived early...", "q2czJLPJ4nA", 239, false, "https://www.youtube.com/watch?v=q2czJLPJ4nA", "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e102900_The humanoid-robot dystopia arrived early....mp4", false, 36, ~U[2025-10-29 18:10:55Z]] 06:00:01.229 [debug] QUERY OK source="sources" db=1.2ms idle=18.8ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-01 12:00:01Z], ~U[2026-03-01 12:00:01Z], 36] 06:00:01.235 [debug] QUERY OK source="media_items" db=5.5ms queue=0.1ms idle=16.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")))) [36] 06:00:01.242 [debug] QUERY OK source="media_items" db=5.5ms queue=0.1ms idle=20.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] 06:00:01.244 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=20.7ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [36] 06:00:01.249 [debug] QUERY OK source="tasks" db=1.1ms idle=12.3ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189165, 36, ~U[2026-03-01 12:00:01Z], ~U[2026-03-01 12:00:01Z]] 06:00:01.251 [info] {"args":{"id":36},"id":188941,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":90000640,"event":"job:stop","queue_time":915404,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 06:00:11.974 [info] {"source":"oban","duration":55492,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:00:33.807 [info] GET /sources/37/media/2337025/edit 06:00:33.807 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2337025", "source_id" => "37"} Pipelines: [:browser] 06:00:33.807 [info] GET /sources/43/media/2350851/edit 06:00:33.807 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2350851", "source_id" => "43"} Pipelines: [:browser] 06:00:33.809 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=1293.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" = ?) [2337025] 06:00:33.809 [debug] QUERY OK source="media_items" db=1.1ms idle=1293.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" = ?) [2350851] 06:00:33.810 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=295.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:33.810 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=1249.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:33.810 [debug] QUERY OK source="settings" db=0.2ms idle=248.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:33.810 [debug] QUERY OK source="settings" db=0.3ms 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 [] 06:00:33.811 [debug] QUERY OK source="settings" db=0.5ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:33.811 [debug] QUERY OK source="settings" db=0.5ms 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 [] 06:00:33.813 [info] Sent 200 in 5ms 06:00:33.813 [info] Sent 200 in 6ms 06:00:33.849 [info] GET /sources/37/media/2336379 06:00:33.850 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2336379", "source_id" => "37"} Pipelines: [:browser] 06:00:33.851 [debug] QUERY OK source="media_items" db=0.5ms idle=40.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" = ?) [2336379] 06:00:33.852 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [37] 06:00:33.852 [debug] QUERY OK source="tasks" db=0.9ms queue=0.1ms idle=40.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" [2336379] 06:00:33.853 [debug] QUERY OK source="oban_jobs" db=0.6ms idle=41.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" IN (?,?)) [177950, 180992] 06:00:33.854 [debug] QUERY OK source="settings" db=0.2ms idle=42.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:33.854 [debug] QUERY OK source="settings" db=0.2ms idle=3.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:33.855 [debug] QUERY OK source="settings" db=0.3ms 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 [] 06:00:33.857 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:00:33.859 [info] Sent 200 in 9ms 06:00:33.940 [info] GET /sources/57/media/2209886/edit 06:00:33.941 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2209886", "source_id" => "57"} Pipelines: [:browser] 06:00:33.942 [debug] QUERY OK source="media_items" db=0.4ms 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" = ?) [2209886] 06:00:33.942 [debug] QUERY OK source="settings" db=0.2ms idle=88.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:33.943 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=88.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:33.944 [debug] QUERY OK source="settings" db=0.2ms idle=88.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:33.945 [info] Sent 200 in 5ms 06:00:34.032 [info] GET /sources/37/media/2042780/edit 06:00:34.033 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2042780", "source_id" => "37"} Pipelines: [:browser] 06:00:34.034 [debug] QUERY OK source="media_items" db=0.4ms idle=176.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" = ?) [2042780] 06:00:34.034 [debug] QUERY OK source="settings" db=0.2ms idle=92.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:34.035 [debug] QUERY OK source="settings" db=0.1ms idle=92.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:34.036 [debug] QUERY OK source="settings" db=0.2ms idle=92.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:34.037 [info] Sent 200 in 4ms 06:00:34.122 [info] GET /sources/57/media/2280577 06:00:34.122 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2280577", "source_id" => "57"} Pipelines: [:browser] 06:00:34.123 [debug] QUERY OK source="media_items" db=0.3ms idle=178.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" = ?) [2280577] 06:00:34.124 [debug] QUERY OK source="sources" db=0.4ms idle=89.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] 06:00:34.125 [debug] QUERY OK source="tasks" db=0.7ms idle=90.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" [2280577] 06:00:34.126 [debug] QUERY OK source="oban_jobs" db=0.8ms idle=90.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 (?,?)) [163906, 167108] 06:00:34.126 [debug] QUERY OK source="settings" db=0.1ms idle=90.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:34.127 [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 [] 06:00:34.128 [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 [] 06:00:34.129 [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] 06:00:34.131 [info] Sent 200 in 9ms 06:00:34.253 [info] GET /sources/57/media/2303892 06:00:34.254 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2303892", "source_id" => "57"} Pipelines: [:browser] 06:00:34.254 [debug] QUERY OK source="media_items" db=0.4ms idle=128.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" = ?) [2303892] 06:00:34.255 [debug] QUERY OK source="tasks" db=0.2ms idle=128.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" [2303892] 06:00:34.255 [debug] QUERY OK source="sources" db=0.3ms idle=128.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:00:34.256 [debug] QUERY OK source="oban_jobs" db=0.5ms idle=128.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" = ?) [169638] 06:00:34.257 [debug] QUERY OK source="settings" db=0.2ms idle=128.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:34.257 [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 [] 06:00:34.258 [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 [] 06:00:34.259 [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] 06:00:34.262 [info] Sent 200 in 8ms 06:00:34.341 [info] GET /sources/46/media/2323363/edit 06:00:34.341 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2323363", "source_id" => "46"} Pipelines: [:browser] 06:00:34.342 [debug] QUERY OK source="media_items" db=0.4ms idle=85.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" = ?) [2323363] 06:00:34.343 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=85.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:34.343 [debug] QUERY OK source="settings" db=0.1ms idle=85.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:34.344 [debug] QUERY OK source="settings" db=0.2ms idle=85.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:34.346 [info] Sent 200 in 4ms 06:00:34.432 [info] GET /sources/37/media/2031468/edit 06:00:34.432 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2031468", "source_id" => "37"} Pipelines: [:browser] 06:00:34.433 [debug] QUERY OK source="media_items" db=0.3ms idle=173.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" = ?) [2031468] 06:00:34.433 [debug] QUERY OK source="settings" db=0.1ms idle=91.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:34.434 [debug] QUERY OK source="settings" db=0.2ms idle=90.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:34.435 [debug] QUERY OK source="settings" db=0.1ms idle=91.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:34.436 [info] Sent 200 in 4ms 06:00:34.522 [info] GET /sources/57/media/2161764/edit 06:00:34.522 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2161764", "source_id" => "57"} Pipelines: [:browser] 06:00:34.523 [debug] QUERY OK source="media_items" db=0.4ms idle=178.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" = ?) [2161764] 06:00:34.524 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=90.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:34.524 [debug] QUERY OK source="settings" db=0.3ms idle=90.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:34.525 [debug] QUERY OK source="settings" db=0.2ms idle=91.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:34.527 [info] Sent 200 in 5ms 06:00:34.614 [info] GET /sources/37/media/2337025 06:00:34.615 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2337025", "source_id" => "37"} Pipelines: [:browser] 06:00:34.616 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=92.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" = ?) [2337025] 06:00:34.617 [debug] QUERY OK source="sources" db=0.4ms idle=91.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] 06:00:34.617 [debug] QUERY OK source="tasks" db=1.2ms idle=92.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" [2337025] 06:00:34.619 [debug] QUERY OK source="oban_jobs" db=0.6ms idle=92.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 (?,?)) [178128, 180994] 06:00:34.619 [debug] QUERY OK source="settings" db=0.2ms idle=55.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:34.620 [debug] QUERY OK source="settings" db=0.2ms 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 [] 06:00:34.621 [debug] QUERY OK source="settings" db=0.2ms 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 [] 06:00:34.622 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 06:00:34.626 [info] Sent 200 in 11ms 06:00:34.705 [info] GET /sources/57/media/2161753/edit 06:00:34.705 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2161753", "source_id" => "57"} Pipelines: [:browser] 06:00:34.706 [debug] QUERY OK source="media_items" db=0.3ms idle=87.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] 06:00:34.707 [debug] QUERY OK source="settings" db=0.2ms idle=87.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:34.707 [debug] QUERY OK source="settings" db=0.2ms idle=87.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:34.708 [debug] QUERY OK source="settings" db=0.2ms idle=87.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:34.710 [info] Sent 200 in 4ms 06:00:34.796 [info] GET /sources/37/media/2042780 06:00:34.796 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2042780", "source_id" => "37"} Pipelines: [:browser] 06:00:34.797 [debug] QUERY OK source="media_items" db=0.4ms idle=174.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" = ?) [2042780] 06:00:34.798 [debug] QUERY OK source="tasks" db=0.2ms idle=91.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" [2042780] 06:00:34.798 [debug] QUERY OK source="sources" db=0.3ms idle=90.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:00:34.799 [debug] QUERY OK source="settings" db=0.1ms idle=91.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:34.799 [debug] QUERY OK source="settings" db=0.3ms idle=90.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:34.800 [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 [] 06:00:34.801 [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] 06:00:34.803 [info] Sent 200 in 7ms 06:00:34.887 [info] GET /sources/57/media/2209886 06:00:34.887 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2209886", "source_id" => "57"} Pipelines: [:browser] 06:00:34.888 [debug] QUERY OK source="media_items" db=0.3ms idle=89.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" = ?) [2209886] 06:00:34.889 [debug] QUERY OK source="tasks" db=0.3ms idle=89.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" [2209886] 06:00:34.889 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [57] 06:00:34.890 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=89.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" = ?) [146596] 06:00:34.890 [debug] QUERY OK source="settings" db=0.1ms idle=88.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:34.891 [debug] QUERY OK source="settings" db=0.2ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:34.891 [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 [] 06:00:34.892 [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] 06:00:34.895 [info] Sent 200 in 7ms 06:00:34.976 [info] GET /sources/46/media/2323363 06:00:34.977 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2323363", "source_id" => "46"} Pipelines: [:browser] 06:00:34.977 [debug] QUERY OK source="media_items" db=0.3ms idle=87.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" = ?) [2323363] 06:00:34.978 [debug] QUERY OK source="sources" db=0.2ms idle=87.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] 06:00:34.979 [debug] QUERY OK source="tasks" db=0.9ms idle=87.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" [2323363] 06:00:34.980 [debug] QUERY OK source="oban_jobs" db=0.5ms idle=88.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" IN (?,?)) [174650, 177080] 06:00:34.981 [debug] QUERY OK source="settings" db=0.1ms idle=88.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:34.981 [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 [] 06:00:34.982 [debug] QUERY OK source="settings" db=0.2ms 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 [] 06:00:34.983 [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] 06:00:34.986 [info] Sent 200 in 9ms 06:00:35.068 [info] GET /sources/37/media/2031468 06:00:35.068 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2031468", "source_id" => "37"} Pipelines: [:browser] 06:00:35.069 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=88.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" = ?) [2031468] 06:00:35.070 [debug] QUERY OK source="tasks" db=0.3ms idle=88.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" [2031468] 06:00:35.070 [debug] QUERY OK source="sources" db=0.3ms idle=88.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:00:35.071 [debug] QUERY OK source="settings" db=0.1ms idle=88.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:35.071 [debug] QUERY OK source="settings" db=0.1ms idle=87.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:35.072 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=2.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:35.073 [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] 06:00:35.075 [info] Sent 200 in 6ms 06:00:35.159 [info] GET /sources/37/media/2281498/edit 06:00:35.159 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2281498", "source_id" => "37"} Pipelines: [:browser] 06:00:35.160 [debug] QUERY OK source="media_items" db=0.3ms idle=89.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" = ?) [2281498] 06:00:35.161 [debug] QUERY OK source="settings" db=0.1ms idle=89.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:35.161 [debug] QUERY OK source="settings" db=0.1ms idle=89.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:35.162 [debug] QUERY OK source="settings" db=0.1ms idle=89.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:35.163 [info] Sent 200 in 4ms 06:00:35.249 [info] GET /sources/57/media/2351075/edit 06:00:35.250 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2351075", "source_id" => "57"} Pipelines: [:browser] 06:00:35.250 [debug] QUERY OK source="media_items" db=0.3ms idle=177.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" = ?) [2351075] 06:00:35.251 [debug] QUERY OK source="settings" db=0.2ms idle=90.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:35.251 [debug] QUERY OK source="settings" db=0.1ms idle=90.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:35.252 [debug] QUERY OK source="settings" db=0.2ms idle=91.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:00:35.254 [info] Sent 200 in 4ms 06:00:41.987 [info] {"source":"oban","duration":12424,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:01:00.132 [info] {"source":"oban","duration":274,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:01:00.346 [info] GET /sources/46/media/2312061/edit 06:01:00.347 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2312061", "source_id" => "46"} Pipelines: [:browser] 06:01:00.347 [info] GET /sources/57/media/2161759/edit 06:01:00.347 [info] GET /sources/57/media/2186150/edit 06:01:00.347 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2186150", "source_id" => "57"} Pipelines: [:browser] 06:01:00.347 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2161759", "source_id" => "57"} Pipelines: [:browser] 06:01:00.348 [debug] QUERY OK source="media_items" db=0.8ms idle=1735.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" = ?) [2186150] 06:01:00.348 [debug] QUERY OK source="media_items" db=1.0ms idle=1832.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" = ?) [2312061] 06:01:00.348 [debug] QUERY OK source="media_items" db=1.0ms idle=832.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" = ?) [2161759] 06:01:00.349 [debug] QUERY OK source="settings" db=0.3ms idle=735.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:00.349 [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 [] 06:01:00.349 [debug] QUERY OK source="settings" db=0.5ms idle=216.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:00.349 [debug] QUERY OK source="settings" db=0.3ms 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 [] 06:01:00.349 [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 [] 06:01:00.349 [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 [] 06:01:00.350 [debug] QUERY OK source="settings" db=0.4ms 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 [] 06:01:00.350 [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 [] 06:01:00.350 [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 [] 06:01:00.351 [info] Sent 200 in 4ms 06:01:00.352 [info] Sent 200 in 5ms 06:01:00.352 [info] Sent 200 in 5ms 06:01:00.385 [info] GET /sources/43/media/2366280/edit 06:01:00.385 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2366280", "source_id" => "43"} Pipelines: [:browser] 06:01:00.386 [debug] QUERY OK source="media_items" db=0.2ms idle=36.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" = ?) [2366280] 06:01:00.386 [debug] QUERY OK source="settings" db=0.1ms idle=36.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:00.387 [debug] QUERY OK source="settings" db=0.2ms 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 [] 06:01:00.387 [debug] QUERY OK source="settings" db=0.1ms idle=36.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:00.388 [info] Sent 200 in 3ms 06:01:00.475 [info] GET /sources/30/media/2084204/edit 06:01:00.476 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2084204", "source_id" => "30"} Pipelines: [:browser] 06:01:00.476 [debug] QUERY OK source="media_items" db=0.2ms idle=125.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" = ?) [2084204] 06:01:00.477 [debug] QUERY OK source="settings" db=0.1ms idle=90.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:00.477 [debug] QUERY OK source="settings" db=0.1ms idle=90.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:00.478 [debug] QUERY OK source="settings" db=0.1ms idle=90.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:00.479 [info] Sent 200 in 3ms 06:01:00.566 [info] GET /sources/57/media/2186150 06:01:00.567 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2186150", "source_id" => "57"} Pipelines: [:browser] 06:01:00.567 [debug] QUERY OK source="media_items" db=0.2ms idle=179.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] 06:01:00.568 [debug] QUERY OK source="sources" db=0.3ms idle=90.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] 06:01:00.569 [debug] QUERY OK source="tasks" db=1.1ms idle=91.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" [2186150] 06:01:00.572 [debug] QUERY OK source="oban_jobs" db=2.1ms idle=92.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 (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [140257, 140260, 142360, 142363, 144478, 144481, 146597, 146600, 148712, 148715, 150438, 150441, 152195, 152199, 154200, 154204, 156130, 156134, 158068, 158072, 159997, 160000, 162006, 162009, 163919, 163924, 165834, 165839, 167749, 167764, 169640, 169655, 171638, 171641, 173624, 173627, 175819, 175822, 177734, 177749, 179737, 179741, 181805, 181808, 183888, 183891, 185802, 185805, 187451, 187454, ...] 06:01:00.573 [debug] QUERY OK source="settings" db=0.1ms idle=95.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:00.573 [debug] QUERY OK source="settings" db=0.1ms 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 [] 06:01:00.574 [debug] QUERY OK source="settings" db=0.1ms 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 [] 06:01:00.575 [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] 06:01:00.584 [info] Sent 200 in 17ms 06:01:00.698 [info] GET /sources/57/media/2358863/edit 06:01:00.698 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2358863", "source_id" => "57"} Pipelines: [:browser] 06:01:00.699 [debug] QUERY OK source="media_items" db=0.2ms idle=125.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" = ?) [2358863] 06:01:00.699 [debug] QUERY OK source="settings" db=0.2ms idle=125.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:00.700 [debug] QUERY OK source="settings" db=0.1ms idle=125.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:00.700 [debug] QUERY OK source="settings" db=0.1ms idle=125.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:00.702 [info] Sent 200 in 3ms 06:01:00.782 [info] GET /sources/37/media/2281498 06:01:00.782 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2281498", "source_id" => "37"} Pipelines: [:browser] 06:01:00.783 [debug] QUERY OK source="media_items" db=0.3ms idle=167.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" = ?) [2281498] 06:01:00.783 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [37] 06:01:00.787 [debug] QUERY OK source="tasks" db=4.2ms idle=84.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" [2281498] 06:01:00.788 [debug] QUERY OK source="oban_jobs" db=0.5ms idle=87.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 (?,?)) [164122, 167109] 06:01:00.789 [debug] QUERY OK source="settings" db=0.1ms idle=88.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:00.789 [debug] QUERY OK source="settings" db=0.1ms 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 [] 06:01:00.790 [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 [] 06:01:00.791 [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] 06:01:00.794 [info] Sent 200 in 11ms 06:01:00.873 [info] GET /sources/37/media/2312252/edit 06:01:00.873 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2312252", "source_id" => "37"} Pipelines: [:browser] 06:01:00.874 [debug] QUERY OK source="media_items" db=0.3ms idle=85.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" = ?) [2312252] 06:01:00.875 [debug] QUERY OK source="settings" db=0.2ms idle=85.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:00.875 [debug] QUERY OK source="settings" db=0.1ms idle=85.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:00.876 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=85.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:00.877 [info] Sent 200 in 4ms 06:01:00.964 [info] GET /sources/57/media/2161753 06:01:00.964 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2161753", "source_id" => "57"} Pipelines: [:browser] 06:01:00.965 [debug] QUERY OK source="media_items" db=0.3ms idle=173.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" = ?) [2161753] 06:01:00.966 [debug] QUERY OK source="tasks" db=0.2ms idle=91.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" [2161753] 06:01:00.966 [debug] QUERY OK source="sources" db=0.2ms idle=90.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:01:00.966 [debug] QUERY OK source="settings" db=0.1ms idle=91.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:00.967 [debug] QUERY OK source="settings" db=0.1ms idle=90.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:00.967 [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 [] 06:01:00.968 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 06:01:00.970 [info] Sent 200 in 5ms 06:01:01.055 [info] GET /sources/30/media/2084204 06:01:01.055 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2084204", "source_id" => "30"} Pipelines: [:browser] 06:01:01.056 [debug] QUERY OK source="media_items" db=0.2ms idle=89.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" = ?) [2084204] 06:01:01.056 [debug] QUERY OK source="tasks" db=0.1ms idle=89.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" [2084204] 06:01:01.057 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [30] 06:01:01.057 [debug] QUERY OK source="settings" db=0.1ms idle=89.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:01.057 [debug] QUERY OK source="settings" db=0.1ms idle=88.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:01.058 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:01.059 [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] 06:01:01.061 [info] Sent 200 in 6ms 06:01:01.146 [info] GET /sources/57/media/2351075 06:01:01.146 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2351075", "source_id" => "57"} Pipelines: [:browser] 06:01:01.147 [debug] QUERY OK source="media_items" db=0.3ms idle=89.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" = ?) [2351075] 06:01:01.148 [debug] QUERY OK source="tasks" db=0.3ms idle=90.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" [2351075] 06:01:01.148 [debug] QUERY OK source="sources" db=0.4ms idle=89.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] 06:01:01.149 [debug] QUERY OK source="oban_jobs" db=0.3ms idle=90.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" IN (?,?)) [181804, 185134] 06:01:01.149 [debug] QUERY OK source="settings" db=0.1ms idle=90.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:01.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 [] 06:01:01.150 [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 [] 06:01:01.151 [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] 06:01:01.154 [info] Sent 200 in 7ms 06:01:01.236 [info] GET /sources/57/media/2161765/edit 06:01:01.237 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2161765", "source_id" => "57"} Pipelines: [:browser] 06:01:01.238 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=88.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" = ?) [2161765] 06:01:01.238 [debug] QUERY OK source="settings" db=0.1ms idle=88.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:01.239 [debug] QUERY OK source="settings" db=0.1ms idle=88.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:01.240 [debug] QUERY OK source="settings" db=0.2ms idle=89.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:01.241 [info] Sent 200 in 4ms 06:01:01.328 [info] GET /sources/57/media/2249212/edit 06:01:01.328 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2249212", "source_id" => "57"} Pipelines: [:browser] 06:01:01.329 [debug] QUERY OK source="media_items" db=0.3ms idle=177.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" = ?) [2249212] 06:01:01.330 [debug] QUERY OK source="settings" db=0.2ms idle=91.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:01.330 [debug] QUERY OK source="settings" db=0.1ms idle=91.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:01.331 [debug] QUERY OK source="settings" db=0.1ms idle=91.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:01.332 [info] Sent 200 in 4ms 06:01:01.419 [info] GET /sources/57/media/2161759 06:01:01.419 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2161759", "source_id" => "57"} Pipelines: [:browser] 06:01:01.420 [debug] QUERY OK source="media_items" db=0.3ms idle=179.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" = ?) [2161759] 06:01:01.421 [debug] QUERY OK source="tasks" db=0.1ms idle=91.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" [2161759] 06:01:01.421 [debug] QUERY OK source="sources" db=0.3ms idle=90.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:01:01.421 [debug] QUERY OK source="settings" db=0.1ms idle=91.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:01.422 [debug] QUERY OK source="settings" db=0.1ms idle=90.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:01.422 [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 [] 06:01:01.423 [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] 06:01:01.425 [info] Sent 200 in 5ms 06:01:01.510 [info] GET /sources/46/media/2312061 06:01:01.510 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2312061", "source_id" => "46"} Pipelines: [:browser] 06:01:01.511 [debug] QUERY OK source="media_items" db=0.3ms idle=89.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" = ?) [2312061] 06:01:01.512 [debug] QUERY OK source="tasks" db=0.4ms queue=0.1ms idle=89.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" [2312061] 06:01:01.512 [debug] QUERY OK source="sources" db=0.5ms idle=89.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] 06:01:01.513 [debug] QUERY OK source="oban_jobs" db=0.5ms idle=89.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 (?,?)) [171713, 174983] 06:01:01.513 [debug] QUERY OK source="settings" db=0.1ms idle=90.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:01.514 [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 [] 06:01:01.514 [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 [] 06:01:01.515 [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] 06:01:01.518 [info] Sent 200 in 8ms 06:01:01.601 [info] GET /sources/57/media/2161763/edit 06:01:01.601 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2161763", "source_id" => "57"} Pipelines: [:browser] 06:01:01.602 [debug] QUERY OK source="media_items" db=0.3ms idle=88.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" = ?) [2161763] 06:01:01.602 [debug] QUERY OK source="settings" db=0.2ms idle=88.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:01.603 [debug] QUERY OK source="settings" db=0.1ms idle=88.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:01.604 [debug] QUERY OK source="settings" db=0.2ms idle=88.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:01.605 [info] Sent 200 in 4ms 06:01:01.692 [info] GET /sources/37/media/2350266/edit 06:01:01.692 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2350266", "source_id" => "37"} Pipelines: [:browser] 06:01:01.693 [debug] QUERY OK source="media_items" db=0.2ms idle=90.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" = ?) [2350266] 06:01:01.693 [debug] QUERY OK source="settings" db=0.1ms idle=90.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:01.694 [debug] QUERY OK source="settings" db=0.1ms idle=90.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:01.694 [debug] QUERY OK source="settings" db=0.1ms idle=90.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:01.696 [info] Sent 200 in 3ms 06:01:09.082 [info] GET /sources/57/media/2161656/edit 06:01:09.082 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2161656", "source_id" => "57"} Pipelines: [:browser] 06:01:09.082 [info] GET /sources/57/media/2161754 06:01:09.083 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2161754", "source_id" => "57"} Pipelines: [:browser] 06:01:09.083 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=1568.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" = ?) [2161656] 06:01:09.083 [debug] QUERY OK source="media_items" db=0.5ms idle=1568.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] 06:01:09.084 [debug] QUERY OK source="tasks" db=0.4ms idle=1454.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" [2161754] 06:01:09.084 [debug] QUERY OK source="settings" db=0.7ms idle=1569.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:09.084 [debug] QUERY OK source="sources" db=0.6ms idle=452.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:01:09.085 [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 [] 06:01:09.085 [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 [] 06:01:09.086 [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 [] 06:01:09.086 [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 [] 06:01:09.086 [debug] QUERY OK source="settings" db=0.1ms queue=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 [] 06:01:09.087 [info] Sent 200 in 4ms 06:01:09.087 [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] 06:01:09.088 [info] Sent 200 in 6ms 06:01:09.114 [info] GET /sources/57/media/2161766/edit 06:01:09.114 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2161766", "source_id" => "57"} Pipelines: [:browser] 06:01:09.115 [debug] QUERY OK source="media_items" db=0.4ms idle=29.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" = ?) [2161766] 06:01:09.115 [debug] QUERY OK source="settings" db=0.2ms idle=29.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:09.116 [debug] QUERY OK source="settings" db=0.2ms idle=29.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:09.116 [debug] QUERY OK source="settings" db=0.1ms idle=30.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:09.118 [info] Sent 200 in 4ms 06:01:09.204 [info] GET /sources/57/media/2343210 06:01:09.204 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2343210", "source_id" => "57"} Pipelines: [:browser] 06:01:09.205 [debug] QUERY OK source="media_items" db=0.4ms 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" = ?) [2343210] 06:01:09.206 [debug] QUERY OK source="tasks" db=0.2ms idle=90.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" [2343210] 06:01:09.206 [debug] QUERY OK source="sources" db=0.5ms idle=90.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:01:09.207 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=90.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" = ?) [179736] 06:01:09.207 [debug] QUERY OK source="settings" db=0.1ms idle=90.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:09.208 [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 [] 06:01:09.208 [debug] QUERY OK source="settings" db=0.2ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:09.209 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 06:01:09.212 [info] Sent 200 in 7ms 06:01:09.295 [info] GET /sources/30/media/2116577/edit 06:01:09.295 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2116577", "source_id" => "30"} Pipelines: [:browser] 06:01:09.296 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=88.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" = ?) [2116577] 06:01:09.297 [debug] QUERY OK source="settings" db=0.2ms idle=89.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:09.297 [debug] QUERY OK source="settings" db=0.1ms idle=89.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:09.298 [debug] QUERY OK source="settings" db=0.1ms idle=89.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:09.299 [info] Sent 200 in 3ms 06:01:09.387 [info] GET /sources/30/media/2116577 06:01:09.387 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2116577", "source_id" => "30"} Pipelines: [:browser] 06:01:09.388 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=177.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" = ?) [2116577] 06:01:09.388 [debug] QUERY OK source="tasks" db=0.1ms idle=91.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" [2116577] 06:01:09.388 [debug] QUERY OK source="sources" db=0.2ms idle=91.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:01:09.389 [debug] QUERY OK source="settings" db=0.1ms idle=91.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:09.389 [debug] QUERY OK source="settings" db=0.1ms idle=91.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:09.390 [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 [] 06:01:09.390 [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] 06:01:09.392 [info] Sent 200 in 5ms 06:01:09.477 [info] GET /sources/57/media/2161656 06:01:09.478 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2161656", "source_id" => "57"} Pipelines: [:browser] 06:01:09.478 [debug] QUERY OK source="media_items" db=0.3ms idle=89.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" = ?) [2161656] 06:01:09.479 [debug] QUERY OK source="tasks" db=0.2ms idle=89.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" [2161656] 06:01:09.479 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [57] 06:01:09.480 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=89.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" = ?) [133807] 06:01:09.480 [debug] QUERY OK source="settings" db=0.1ms idle=89.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:09.481 [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 [] 06:01:09.481 [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 [] 06:01:09.482 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 06:01:09.484 [info] Sent 200 in 6ms 06:01:09.569 [info] GET /sources/57/media/2161766 06:01:09.569 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2161766", "source_id" => "57"} Pipelines: [:browser] 06:01:09.570 [debug] QUERY OK source="media_items" db=0.4ms idle=89.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" = ?) [2161766] 06:01:09.570 [debug] QUERY OK source="tasks" db=0.1ms idle=89.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" [2161766] 06:01:09.570 [debug] QUERY OK source="sources" db=0.2ms idle=89.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:01:09.571 [debug] QUERY OK source="settings" db=0.1ms idle=89.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:09.571 [debug] QUERY OK source="settings" db=0.1ms idle=89.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:09.572 [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 [] 06:01:09.573 [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] 06:01:09.574 [info] Sent 200 in 5ms 06:01:09.660 [info] GET /sources/30/media/2321562/edit 06:01:09.661 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2321562", "source_id" => "30"} Pipelines: [:browser] 06:01:09.661 [debug] QUERY OK source="media_items" db=0.4ms idle=89.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" = ?) [2321562] 06:01:09.662 [debug] QUERY OK source="settings" db=0.2ms idle=90.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:09.662 [debug] QUERY OK source="settings" db=0.2ms idle=90.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:09.663 [debug] QUERY OK source="settings" db=0.2ms idle=90.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:09.665 [info] Sent 200 in 4ms 06:01:09.751 [info] GET /sources/30/media/2321562 06:01:09.751 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2321562", "source_id" => "30"} Pipelines: [:browser] 06:01:09.752 [debug] QUERY OK source="media_items" db=0.2ms queue=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" = ?) [2321562] 06:01:09.753 [debug] QUERY OK source="sources" db=0.4ms idle=90.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:01:09.753 [debug] QUERY OK source="tasks" db=1.2ms idle=90.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" [2321562] 06:01:09.754 [debug] QUERY OK source="oban_jobs" db=0.5ms idle=91.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" IN (?,?)) [174122, 177079] 06:01:09.755 [debug] QUERY OK source="settings" db=0.1ms idle=91.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:09.755 [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 [] 06:01:09.756 [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 [] 06:01:09.757 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:01:09.759 [info] Sent 200 in 8ms 06:01:09.842 [info] GET /sources/57/media/2161655/edit 06:01:09.842 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2161655", "source_id" => "57"} Pipelines: [:browser] 06:01:09.843 [debug] QUERY OK source="media_items" db=0.3ms idle=88.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" = ?) [2161655] 06:01:09.843 [debug] QUERY OK source="settings" db=0.2ms idle=88.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:09.844 [debug] QUERY OK source="settings" db=0.2ms idle=88.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:09.845 [debug] QUERY OK source="settings" db=0.1ms idle=88.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:09.846 [info] Sent 200 in 4ms 06:01:09.933 [info] GET /sources/57/media/2161658 06:01:09.933 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2161658", "source_id" => "57"} Pipelines: [:browser] 06:01:09.934 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=176.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" = ?) [2161658] 06:01:09.935 [debug] QUERY OK source="sources" db=0.5ms idle=91.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:01:09.936 [debug] QUERY OK source="tasks" db=0.8ms idle=91.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] 06:01:09.938 [debug] QUERY OK source="oban_jobs" db=1.5ms idle=92.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 (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [133809, 133936, 136047, 136048, 138148, 138149, 140258, 140259, 142361, 142362, 144479, 144480, 146598, 146599, 148713, 148714, 150439, 150440, 152196, 152198, 154201, 154203, 156131, 156133, 158069, 158071, 159998, 159999, 162007, 162008, 163920, 163923, 165837, 165838, 167750, 167763, 169653, 169654, 171639, 171640, 173625, 173626, 175820, 175821, 177735, 177748, 179739, 179740, 181806, 181807, ...] 06:01:09.940 [debug] QUERY OK source="settings" db=0.2ms idle=94.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:09.940 [debug] QUERY OK source="settings" db=0.1ms 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 [] 06:01:09.941 [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 [] 06:01:09.941 [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] 06:01:09.951 [info] Sent 200 in 17ms 06:01:10.024 [info] GET /sources/57/media/2161760 06:01:10.024 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2161760", "source_id" => "57"} Pipelines: [:browser] 06:01:10.025 [debug] QUERY OK source="media_items" db=0.3ms 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" = ?) [2161760] 06:01:10.026 [debug] QUERY OK source="tasks" db=0.2ms idle=85.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] 06:01:10.026 [debug] QUERY OK source="sources" db=0.3ms idle=85.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] 06:01:10.026 [debug] QUERY OK source="settings" db=0.1ms idle=85.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:10.027 [debug] QUERY OK source="settings" db=0.1ms idle=85.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:10.027 [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 [] 06:01:10.028 [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] 06:01:10.030 [info] Sent 200 in 5ms 06:01:10.115 [info] GET /sources/57/media/2280577/edit 06:01:10.115 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2280577", "source_id" => "57"} Pipelines: [:browser] 06:01:10.116 [debug] QUERY OK source="media_items" db=0.2ms idle=90.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" = ?) [2280577] 06:01:10.117 [debug] QUERY OK source="settings" db=0.1ms idle=90.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:10.117 [debug] QUERY OK source="settings" db=0.1ms idle=90.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:10.118 [debug] QUERY OK source="settings" db=0.1ms idle=90.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:10.119 [info] Sent 200 in 4ms 06:01:10.206 [info] GET /sources/37/media/2336379/edit 06:01:10.206 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2336379", "source_id" => "37"} Pipelines: [:browser] 06:01:10.207 [debug] QUERY OK source="media_items" db=0.3ms idle=178.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" = ?) [2336379] 06:01:10.207 [debug] QUERY OK source="settings" db=0.2ms idle=90.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:10.208 [debug] QUERY OK source="settings" db=0.1ms idle=90.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:10.208 [debug] QUERY OK source="settings" db=0.3ms idle=91.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:10.210 [info] Sent 200 in 4ms 06:01:10.297 [info] GET /sources/57/media/2303892/edit 06:01:10.297 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2303892", "source_id" => "57"} Pipelines: [:browser] 06:01:10.298 [debug] QUERY OK source="media_items" db=0.3ms idle=179.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" = ?) [2303892] 06:01:10.298 [debug] QUERY OK source="settings" db=0.3ms idle=91.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:10.299 [debug] QUERY OK source="settings" db=0.2ms idle=91.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:10.300 [debug] QUERY OK source="settings" db=0.1ms idle=91.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:10.301 [info] Sent 200 in 4ms 06:01:10.406 [info] GET /sources/57/media/2161655 06:01:10.406 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2161655", "source_id" => "57"} Pipelines: [:browser] 06:01:10.407 [debug] QUERY OK source="media_items" db=0.3ms idle=198.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" = ?) [2161655] 06:01:10.408 [debug] QUERY OK source="tasks" db=0.4ms idle=109.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" [2161655] 06:01:10.408 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=109.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:01:10.409 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=109.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" = ?) [133806] 06:01:10.409 [debug] QUERY OK source="settings" db=0.1ms idle=109.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:10.410 [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 [] 06:01:10.410 [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 [] 06:01:10.411 [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] 06:01:10.413 [info] Sent 200 in 7ms 06:01:10.479 [info] GET /sources/57/media/2161764 06:01:10.479 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2161764", "source_id" => "57"} Pipelines: [:browser] 06:01:10.480 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=70.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" = ?) [2161764] 06:01:10.481 [debug] QUERY OK source="tasks" db=0.2ms idle=71.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] 06:01:10.481 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [57] 06:01:10.482 [debug] QUERY OK source="settings" db=0.1ms idle=71.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:10.482 [debug] QUERY OK source="settings" db=0.0ms idle=70.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:10.483 [debug] QUERY OK source="settings" db=0.1ms queue=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 [] 06:01:10.484 [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] 06:01:10.485 [info] Sent 200 in 6ms 06:01:12.006 [info] {"source":"oban","duration":17981,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:01:13.648 [info] {"args":{"id":51},"id":189144,"meta":{},"system_time":1772366473648330752,"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"]} 06:01:13.649 [debug] QUERY OK source="sources" db=0.3ms idle=133.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" = ?) [51] 06:01:13.649 [debug] QUERY OK source="settings" db=0.3ms idle=134.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:13.650 [debug] QUERY OK source="media_profiles" db=0.8ms idle=135.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] 06:01:13.651 [debug] QUERY OK source="settings" db=0.7ms 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 [] 06:01:13.651 [debug] Fetching recent media IDs from YouTube RSS feed for source: UCUMwY9iS8oMyWDYIe6_RmoA 06:01:13.904 [debug] Media ids fetched from RSS: ["WxN9VzwoGGw", "9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI"] 06:01:13.906 [debug] QUERY OK source="media_items" db=0.7ms idle=256.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 (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [51, "WxN9VzwoGGw", "9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI"] 06:01:13.907 [debug] QUERY OK source="media_items" db=0.8ms idle=257.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")))) [51] 06:01:13.909 [debug] QUERY OK source="tasks" db=0.2ms idle=257.2ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189166, 51, ~U[2026-03-01 12:01:13Z], ~U[2026-03-01 12:01:13Z]] 06:01:13.910 [info] {"args":{"id":51},"id":189144,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":261192,"event":"job:stop","queue_time":285418,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 06:01:42.021 [info] {"source":"oban","duration":13818,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 06:01:55.027 [info] GET /sources/53/media/2375741/force_download 06:01:55.027 [info] GET /sources/46/media/2377781/force_download 06:01:55.027 [debug] QUERY OK source="settings" db=0.4ms idle=1512.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:55.028 [debug] QUERY OK source="settings" db=0.5ms idle=1512.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:55.028 [debug] QUERY OK source="settings" db=0.1ms idle=1513.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:55.028 [debug] QUERY OK source="settings" db=0.1ms idle=1310.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:55.028 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:01:55.028 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:01:55.028 [error] #PID<0.166906.0> running PinchflatWeb.Endpoint (connection #PID<0.166904.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/53/media/2375741/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/53/media/2375741/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.166904.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/53/media/2375741/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35296}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.166906.0>, params: %{}, path_info: ["sources", "53", "media", "2375741", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://tubesync.cochrun.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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/53/media/2375741/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJi19Hv69_E1GmEAUw6B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.166904.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/53/media/2375741/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35296}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/53/media/2375741/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.166904.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/53/media/2375741/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35296}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.166906.0>, params: %{}, path_info: ["sources", "53", "media", "2375741", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://tubesync.cochrun.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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 06:01:55.028 [error] #PID<0.166907.0> running PinchflatWeb.Endpoint (connection #PID<0.166905.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.166905.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}, 35310}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.166907.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: %{}, 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.182"}, {"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", "GJi19Hv9wEfE4qIARXLC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.166905.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}, 35310}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.166905.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}, 35310}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.166907.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: %{}, 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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 06:01:55.076 [info] GET /sources/55/media/2378747/force_download 06:01:55.077 [debug] QUERY OK source="settings" db=0.4ms idle=357.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:55.078 [debug] QUERY OK source="settings" db=0.2ms idle=50.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:55.078 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:01:55.078 [error] #PID<0.166908.0> running PinchflatWeb.Endpoint (connection #PID<0.166904.0>, stream id 2) 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.166904.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}, 35296}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.166908.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.182"}, {"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", "GJi19H71Z3jlal8AUw7B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.166904.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}, 35296}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/2378747/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.166904.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}, 35296}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.166908.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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 06:01:55.190 [info] GET /media/dfe987df-e95b-40a8-a554-b826ebdf87ae/stream 06:01:55.190 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "dfe987df-e95b-40a8-a554-b826ebdf87ae"} Pipelines: [:maybe_basic_auth] 06:01:55.192 [debug] QUERY OK source="media_items" db=0.9ms idle=163.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" = ?) ["dfe987df-e95b-40a8-a554-b826ebdf87ae"] 06:01:55.192 [debug] Invalid range request for media item: dfe987df-e95b-40a8-a554-b826ebdf87ae - serving full file 06:01:55.192 [info] Sent 200 in 1ms 06:01:55.277 [info] GET /sources/57/media/2161658/edit 06:01:55.277 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2161658", "source_id" => "57"} Pipelines: [:browser] 06:01:55.278 [debug] QUERY OK source="media_items" db=0.2ms idle=249.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] 06:01:55.278 [debug] QUERY OK source="settings" db=0.2ms idle=250.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:55.279 [debug] QUERY OK source="settings" db=0.1ms idle=201.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:55.321 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=242.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:55.322 [info] Sent 200 in 45ms 06:01:55.380 [info] GET /sources/53/media/1970829 06:01:55.380 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1970829", "source_id" => "53"} Pipelines: [:browser] 06:01:55.381 [debug] QUERY OK source="media_items" db=0.3ms idle=188.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" = ?) [1970829] 06:01:55.381 [debug] QUERY OK source="tasks" db=0.2ms idle=103.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" [1970829] 06:01:55.382 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [53] 06:01:55.382 [debug] QUERY OK source="settings" db=0.1ms idle=103.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:55.382 [debug] QUERY OK source="settings" db=0.1ms idle=61.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:55.383 [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 [] 06:01:55.384 [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] 06:01:55.386 [info] Sent 200 in 6ms 06:01:55.483 [info] GET /sources/53/media/1970829/edit 06:01:55.483 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1970829", "source_id" => "53"} Pipelines: [:browser] 06:01:55.484 [debug] QUERY OK source="media_items" db=0.3ms idle=102.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" = ?) [1970829] 06:01:55.485 [debug] QUERY OK source="settings" db=0.2ms idle=102.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:55.485 [debug] QUERY OK source="settings" db=0.1ms 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 [] 06:01:55.486 [debug] QUERY OK source="settings" db=0.1ms 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 [] 06:01:55.487 [info] Sent 200 in 3ms 06:01:55.558 [info] GET /sources/46/media/2246639 06:01:55.558 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2246639", "source_id" => "46"} Pipelines: [:browser] 06:01:55.559 [debug] QUERY OK source="media_items" db=0.3ms idle=174.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [2246639] 06:01:55.560 [debug] QUERY OK source="sources" db=0.2ms idle=74.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:01:55.562 [debug] QUERY OK source="tasks" db=2.9ms idle=75.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" [2246639] 06:01:55.563 [debug] QUERY OK source="oban_jobs" db=0.6ms idle=77.6ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [155572, 159366] 06:01:55.564 [debug] QUERY OK source="settings" db=0.1ms idle=78.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:55.564 [debug] QUERY OK source="settings" db=0.1ms 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 [] 06:01:55.565 [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 [] 06:01:55.566 [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] 06:01:55.568 [info] Sent 200 in 10ms 06:01:55.648 [info] GET /sources/57/media/2161754/edit 06:01:55.648 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2161754", "source_id" => "57"} Pipelines: [:browser] 06:01:55.648 [debug] QUERY OK source="media_items" db=0.3ms idle=84.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" = ?) [2161754] 06:01:55.649 [debug] QUERY OK source="settings" db=0.1ms idle=84.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:55.649 [debug] QUERY OK source="settings" db=0.1ms idle=84.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:55.650 [debug] QUERY OK source="settings" db=0.1ms idle=84.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:55.651 [info] Sent 200 in 3ms 06:01:55.740 [info] GET /sources/30/media/2027948 06:01:55.740 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2027948", "source_id" => "30"} Pipelines: [:browser] 06:01:55.741 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=91.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" = ?) [2027948] 06:01:55.741 [debug] QUERY OK source="tasks" db=0.2ms idle=91.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" [2027948] 06:01:55.741 [debug] QUERY OK source="sources" db=0.3ms idle=91.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:01:55.742 [debug] QUERY OK source="settings" db=0.1ms idle=91.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:55.742 [debug] QUERY OK source="settings" db=0.1ms idle=21.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:55.743 [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 [] 06:01:55.744 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 06:01:55.746 [info] Sent 200 in 6ms 06:01:55.828 [info] GET /sources/30/media/2027948/edit 06:01:55.828 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2027948", "source_id" => "30"} Pipelines: [:browser] 06:01:55.829 [debug] QUERY OK source="media_items" db=0.3ms idle=86.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" = ?) [2027948] 06:01:55.829 [debug] QUERY OK source="settings" db=0.1ms idle=87.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:55.829 [debug] QUERY OK source="settings" db=0.1ms idle=86.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:55.830 [debug] QUERY OK source="settings" db=0.1ms idle=86.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:55.831 [info] Sent 200 in 3ms 06:01:55.932 [info] GET /sources/new 06:01:55.932 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{"template_id" => "57"} Pipelines: [:browser] 06:01:55.933 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [57] 06:01:55.934 [debug] QUERY OK source="media_profiles" db=0.2ms idle=104.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 06:01:55.934 [debug] QUERY OK source="settings" db=0.1ms idle=104.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:55.935 [debug] QUERY OK source="settings" db=0.1ms idle=104.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:55.935 [debug] QUERY OK source="settings" db=0.1ms idle=104.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:55.936 [debug] QUERY OK source="settings" db=0.2ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:55.937 [debug] QUERY OK source="settings" db=0.2ms idle=2.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:55.940 [info] Sent 200 in 7ms 06:01:56.006 [info] GET /sources/57/media/2161761/edit 06:01:56.006 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2161761", "source_id" => "57"} Pipelines: [:browser] 06:01:56.007 [debug] QUERY OK source="media_items" db=0.2ms 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" = ?) [2161761] 06:01:56.008 [debug] QUERY OK source="settings" db=0.1ms idle=72.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:56.008 [debug] QUERY OK source="settings" db=0.0ms idle=72.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:56.008 [debug] QUERY OK source="settings" db=0.1ms idle=72.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:56.010 [info] Sent 200 in 3ms 06:01:56.099 [info] GET /sources/57/media/2161761 06:01:56.099 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2161761", "source_id" => "57"} Pipelines: [:browser] 06:01:56.100 [debug] QUERY OK source="media_items" db=0.2ms idle=163.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" = ?) [2161761] 06:01:56.101 [debug] QUERY OK source="tasks" db=0.3ms idle=93.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" [2161761] 06:01:56.101 [debug] QUERY OK source="sources" db=0.5ms 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" = ?) [57] 06:01:56.102 [debug] QUERY OK source="settings" db=0.1ms idle=93.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:56.102 [debug] QUERY OK source="settings" db=0.0ms idle=93.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:56.102 [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 [] 06:01:56.103 [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] 06:01:56.105 [info] Sent 200 in 5ms 06:01:56.191 [info] GET /sources/57/media/2161762/edit 06:01:56.191 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2161762", "source_id" => "57"} Pipelines: [:browser] 06:01:56.192 [debug] QUERY OK source="media_items" db=0.2ms idle=90.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" = ?) [2161762] 06:01:56.192 [debug] QUERY OK source="settings" db=0.1ms idle=90.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:56.192 [debug] QUERY OK source="settings" db=0.1ms idle=90.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:56.193 [debug] QUERY OK source="settings" db=0.1ms idle=90.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:56.194 [info] Sent 200 in 3ms 06:01:56.288 [info] GET /sources/57/media/2161760/edit 06:01:56.288 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2161760", "source_id" => "57"} Pipelines: [:browser] 06:01:56.289 [debug] QUERY OK source="media_items" db=0.3ms idle=185.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" = ?) [2161760] 06:01:56.289 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms 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 [] 06:01:56.290 [debug] QUERY OK source="settings" db=0.0ms idle=97.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:56.290 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=97.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:56.292 [info] Sent 200 in 3ms 06:01:56.370 [info] GET /sources/57/media/2343210/edit 06:01:56.370 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2343210", "source_id" => "57"} Pipelines: [:browser] 06:01:56.371 [debug] QUERY OK source="media_items" db=0.3ms idle=177.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" = ?) [2343210] 06:01:56.371 [debug] QUERY OK source="settings" db=0.1ms idle=82.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:56.372 [debug] QUERY OK source="settings" db=0.1ms idle=82.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:56.372 [debug] QUERY OK source="settings" db=0.1ms 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 [] 06:01:56.373 [info] Sent 200 in 3ms 06:01:56.469 [info] GET /sources/57/media/2161762 06:01:56.469 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2161762", "source_id" => "57"} Pipelines: [:browser] 06:01:56.469 [debug] QUERY OK source="media_items" db=0.2ms idle=178.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" = ?) [2161762] 06:01:56.470 [debug] QUERY OK source="tasks" db=0.1ms idle=98.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" [2161762] 06:01:56.470 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [57] 06:01:56.471 [debug] QUERY OK source="settings" db=0.1ms 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 [] 06:01:56.471 [debug] QUERY OK source="settings" db=0.1ms idle=98.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:56.472 [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 [] 06:01:56.472 [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] 06:01:56.474 [info] Sent 200 in 5ms 06:02:00.134 [info] {"source":"oban","duration":242,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:02:12.034 [info] {"source":"oban","duration":11983,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:02:35.915 [info] GET /sources/37/media/2375636 06:02:35.915 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2375636", "prevent_download" => "true", "source_id" => "37"} Pipelines: [:browser] 06:02:35.915 [info] GET /sources/55/edit 06:02:35.915 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "55"} Pipelines: [:browser] 06:02:35.915 [debug] QUERY OK source="media_items" db=0.3ms idle=401.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" = ?) [2375636] 06:02:35.916 [debug] QUERY OK source="sources" db=0.3ms idle=401.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:02:35.917 [debug] QUERY OK source="tasks" db=0.6ms queue=0.1ms idle=401.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" [2375636] 06:02:35.917 [debug] QUERY OK source="media_profiles" db=0.8ms idle=117.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" [] 06:02:35.917 [debug] QUERY OK source="sources" db=1.3ms idle=401.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] 06:02:35.918 [debug] QUERY OK source="settings" db=0.3ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:35.918 [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 [] 06:02:35.918 [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 [] 06:02:35.918 [debug] QUERY OK source="oban_jobs" db=0.8ms idle=1.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" = ?) [187696] 06:02:35.919 [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 [] 06:02:35.919 [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 [] 06:02:35.920 [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 [] 06:02:35.920 [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] 06:02:35.922 [info] Sent 200 in 6ms 06:02:35.922 [info] Sent 200 in 7ms 06:02:35.956 [info] GET /sources/38/edit 06:02:35.956 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "38"} Pipelines: [:browser] 06:02:35.956 [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" = ?) [38] 06:02:35.957 [debug] QUERY OK source="media_profiles" db=0.2ms idle=37.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 06:02:35.957 [debug] QUERY OK source="settings" db=0.1ms idle=38.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:35.958 [debug] QUERY OK source="settings" db=0.1ms 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 [] 06:02:35.958 [debug] QUERY OK source="settings" db=0.1ms idle=37.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:35.961 [info] Sent 200 in 5ms 06:02:36.045 [info] GET /sources/37/edit 06:02:36.045 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "37"} Pipelines: [:browser] 06:02:36.046 [debug] QUERY OK source="sources" db=0.3ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 06:02:36.047 [debug] QUERY OK source="media_profiles" db=0.2ms idle=89.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" [] 06:02:36.047 [debug] QUERY OK source="settings" db=0.1ms idle=89.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.047 [debug] QUERY OK source="settings" db=0.1ms idle=89.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.048 [debug] QUERY OK source="settings" db=0.1ms idle=89.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.051 [info] Sent 200 in 6ms 06:02:36.136 [info] GET /sources/30/edit 06:02:36.136 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "30"} Pipelines: [:browser] 06:02:36.137 [debug] QUERY OK source="sources" db=0.3ms idle=90.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] 06:02:36.137 [debug] QUERY OK source="media_profiles" db=0.2ms idle=90.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" [] 06:02:36.138 [debug] QUERY OK source="settings" db=0.1ms idle=90.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.138 [debug] QUERY OK source="settings" db=0.1ms idle=90.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.139 [debug] QUERY OK source="settings" db=0.1ms idle=90.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.142 [info] Sent 200 in 6ms 06:02:36.228 [info] GET /sources/53/edit 06:02:36.228 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "53"} Pipelines: [:browser] 06:02:36.229 [debug] QUERY OK source="sources" db=0.3ms idle=91.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" = ?) [53] 06:02:36.229 [debug] QUERY OK source="media_profiles" db=0.2ms idle=91.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" [] 06:02:36.230 [debug] QUERY OK source="settings" db=0.1ms idle=91.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.230 [debug] QUERY OK source="settings" db=0.1ms idle=91.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.230 [debug] QUERY OK source="settings" db=0.1ms idle=91.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.233 [info] Sent 200 in 5ms 06:02:36.319 [info] GET /sources/9/edit 06:02:36.319 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "9"} Pipelines: [:browser] 06:02:36.320 [debug] QUERY OK source="sources" db=0.2ms idle=90.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:02:36.320 [debug] QUERY OK source="media_profiles" db=0.3ms idle=90.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" [] 06:02:36.321 [debug] QUERY OK source="settings" db=0.1ms idle=90.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.321 [debug] QUERY OK source="settings" db=0.1ms idle=91.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.322 [debug] QUERY OK source="settings" db=0.1ms idle=91.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.325 [info] Sent 200 in 5ms 06:02:36.410 [info] GET /sources/22/edit 06:02:36.410 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "22"} Pipelines: [:browser] 06:02:36.411 [debug] QUERY OK source="sources" db=0.2ms idle=90.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] 06:02:36.411 [debug] QUERY OK source="media_profiles" db=0.1ms idle=90.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 06:02:36.412 [debug] QUERY OK source="settings" db=0.1ms idle=90.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.412 [debug] QUERY OK source="settings" db=0.0ms idle=90.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.412 [debug] QUERY OK source="settings" db=0.0ms idle=90.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.415 [info] Sent 200 in 4ms 06:02:36.500 [info] GET /sources/52/edit 06:02:36.500 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "52"} Pipelines: [:browser] 06:02:36.501 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 06:02:36.501 [debug] QUERY OK source="media_profiles" db=0.1ms idle=89.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 06:02:36.502 [debug] QUERY OK source="settings" db=0.1ms idle=89.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.502 [debug] QUERY OK source="settings" db=0.1ms idle=89.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.502 [debug] QUERY OK source="settings" db=0.1ms idle=89.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.505 [info] Sent 200 in 5ms 06:02:36.592 [info] GET /sources/46/edit 06:02:36.592 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "46"} Pipelines: [:browser] 06:02:36.592 [debug] QUERY OK source="sources" db=0.2ms idle=91.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] 06:02:36.593 [debug] QUERY OK source="media_profiles" db=0.1ms idle=91.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 06:02:36.593 [debug] QUERY OK source="settings" db=0.1ms idle=91.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.594 [debug] QUERY OK source="settings" db=0.1ms idle=91.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.594 [debug] QUERY OK source="settings" db=0.0ms idle=91.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.597 [info] Sent 200 in 5ms 06:02:36.682 [info] GET /sources/26 06:02:36.682 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "26"} Pipelines: [:browser] 06:02:36.683 [debug] QUERY OK source="sources" db=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [26] 06:02:36.683 [debug] QUERY OK source="media_profiles" db=0.2ms idle=90.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] 06:02:36.693 [debug] QUERY OK source="tasks" db=8.9ms idle=90.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [26, "executing", "available", "scheduled", "retryable"] 06:02:36.693 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=99.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" = ?) [189098] 06:02:36.693 [debug] QUERY OK source="settings" db=0.1ms idle=99.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.694 [debug] QUERY OK source="settings" db=0.0ms idle=10.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.694 [debug] QUERY OK source="settings" db=0.1ms idle=10.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.696 [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" = ?) [26] 06:02:36.696 [debug] QUERY OK source="media_items" db=0.2ms idle=3.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [26] 06:02:36.697 [debug] QUERY OK source="media_items" db=0.4ms idle=2.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 ? [26, 10, 0] 06:02:36.697 [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" = ?) [26] 06:02:36.698 [debug] QUERY OK source="media_items" db=0.1ms idle=3.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [26] 06:02:36.698 [debug] QUERY OK source="media_items" db=0.2ms 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 ? [26, 10, 0] 06:02:36.699 [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" = ?) [26] 06:02:36.699 [debug] QUERY OK source="media_items" db=0.2ms idle=2.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [26] 06:02:36.700 [debug] QUERY OK source="media_items" db=0.4ms idle=2.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [26, 10, 0] 06:02:36.701 [info] Sent 200 in 19ms 06:02:36.774 [info] GET /sources/new 06:02:36.774 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{} Pipelines: [:browser] 06:02:36.775 [debug] QUERY OK source="media_profiles" db=0.3ms idle=76.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 06:02:36.775 [debug] QUERY OK source="settings" db=0.1ms idle=76.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.776 [debug] QUERY OK source="settings" db=0.1ms idle=76.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.776 [debug] QUERY OK source="settings" db=0.1ms idle=76.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.776 [debug] QUERY OK source="settings" db=0.1ms idle=76.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.777 [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 [] 06:02:36.780 [info] Sent 200 in 6ms 06:02:36.864 [info] GET /sources/17 06:02:36.865 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "17"} Pipelines: [:browser] 06:02:36.865 [debug] QUERY OK source="sources" db=0.3ms idle=89.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" = ?) [17] 06:02:36.866 [debug] QUERY OK source="media_profiles" db=0.3ms idle=89.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] 06:02:36.879 [debug] QUERY OK source="tasks" db=12.2ms idle=89.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 (?,?,?,?)) [17, "executing", "available", "scheduled", "retryable"] 06:02:36.879 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=101.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" = ?) [187632] 06:02:36.880 [debug] QUERY OK source="settings" db=0.1ms idle=79.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.880 [debug] QUERY OK source="settings" db=0.1ms idle=14.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.881 [debug] QUERY OK source="settings" db=0.2ms idle=14.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:36.882 [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" = ?) [17] 06:02:36.884 [debug] QUERY OK source="media_items" db=0.6ms idle=3.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [17] 06:02:36.885 [debug] QUERY OK source="media_items" db=0.6ms idle=4.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [17, 10, 0] 06:02:36.885 [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" = ?) [17] 06:02:36.886 [debug] QUERY OK source="media_items" db=0.2ms idle=4.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [17] 06:02:36.886 [debug] QUERY OK source="media_items" db=0.3ms idle=3.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [17, 10, 0] 06:02:36.887 [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" = ?) [17] 06:02:36.888 [debug] QUERY OK source="media_items" db=0.4ms idle=2.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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"))))) [17] 06:02:36.889 [debug] QUERY OK source="media_items" db=0.9ms idle=2.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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 ? [17, 10, 0] 06:02:36.890 [info] Sent 200 in 26ms 06:02:36.955 [info] GET /sources/38 06:02:36.956 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "38"} Pipelines: [:browser] 06:02:36.956 [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" = ?) [38] 06:02:36.957 [debug] QUERY OK source="media_profiles" db=0.2ms idle=70.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] 06:02:37.046 [info] GET /sources/9 06:02:37.046 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "9"} Pipelines: [:browser] 06:02:37.046 [debug] QUERY OK source="sources" db=0.2ms idle=158.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:02:37.047 [debug] QUERY OK source="media_profiles" db=0.2ms idle=157.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" = ?) [3] 06:02:37.047 [debug] QUERY OK source="tasks" db=0.1ms queue=0.1ms idle=90.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 (?,?,?,?)) [9, "executing", "available", "scheduled", "retryable"] 06:02:37.048 [debug] QUERY OK source="settings" db=0.1ms idle=90.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:37.048 [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 [] 06:02:37.049 [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 [] 06:02:37.050 [debug] QUERY OK source="tasks" db=93.1ms idle=70.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [38, "executing", "available", "scheduled", "retryable"] 06:02:37.051 [debug] QUERY OK source="sources" db=0.4ms queue=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" = ?) [9] 06:02:37.051 [debug] QUERY OK source="oban_jobs" db=0.7ms idle=2.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" = ?) [189083] 06:02:37.052 [debug] QUERY OK source="settings" db=0.2ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:37.052 [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 [] 06:02:37.053 [debug] QUERY OK source="media_items" db=1.3ms idle=3.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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")))) [9] 06:02:37.053 [debug] QUERY OK source="settings" db=0.2ms queue=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 [] 06:02:37.055 [debug] QUERY OK source="media_items" db=1.9ms queue=0.1ms idle=1.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [9, 10, 0] 06:02:37.056 [debug] QUERY OK source="sources" db=0.4ms 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] 06:02:37.057 [debug] QUERY OK source="sources" db=0.9ms 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" = ?) [9] 06:02:37.058 [debug] QUERY OK source="media_items" db=0.6ms idle=4.2ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [9] 06:02:37.059 [debug] QUERY OK source="media_items" db=0.6ms idle=3.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 ? [9, 10, 0] 06:02:37.059 [debug] QUERY OK source="media_items" db=2.8ms idle=3.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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] 06:02:37.060 [debug] QUERY OK source="sources" db=0.9ms 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" = ?) [9] 06:02:37.063 [debug] QUERY OK source="media_items" db=3.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 ? [38, 10, 0] 06:02:37.064 [debug] QUERY OK source="sources" db=0.6ms 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" = ?) [38] 06:02:37.065 [debug] QUERY OK source="media_items" db=0.3ms idle=5.2ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [38] 06:02:37.065 [debug] QUERY OK source="media_items" db=2.1ms queue=0.5ms idle=4.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [9] 06:02:37.067 [debug] QUERY OK source="media_items" db=2.1ms idle=4.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [38, 10, 0] 06:02:37.068 [debug] QUERY OK source="media_items" db=2.3ms 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 (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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 ? [9, 10, 0] 06:02:37.069 [debug] QUERY OK source="sources" db=0.9ms 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] 06:02:37.070 [info] Sent 200 in 24ms 06:02:37.070 [debug] QUERY OK source="media_items" db=1.1ms idle=4.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [38] 06:02:37.073 [debug] QUERY OK source="media_items" db=2.1ms idle=5.1ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [38, 10, 0] 06:02:37.075 [info] Sent 200 in 119ms 06:02:37.138 [info] GET /sources/22 06:02:37.138 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "22"} Pipelines: [:browser] 06:02:37.139 [debug] QUERY OK source="sources" db=0.2ms idle=71.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] 06:02:37.139 [debug] QUERY OK source="media_profiles" db=0.2ms idle=71.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] 06:02:37.149 [debug] QUERY OK source="tasks" db=9.1ms idle=71.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [22, "executing", "available", "scheduled", "retryable"] 06:02:37.150 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=78.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" = ?) [187515] 06:02:37.150 [debug] QUERY OK source="settings" db=0.1ms idle=77.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:37.150 [debug] QUERY OK source="settings" db=0.1ms idle=11.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:37.151 [debug] QUERY OK source="settings" db=0.1ms 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 [] 06:02:37.153 [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" = ?) [22] 06:02:37.153 [debug] QUERY OK source="media_items" db=0.3ms idle=3.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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] 06:02:37.154 [debug] QUERY OK source="media_items" db=0.5ms idle=3.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [22, 10, 0] 06:02:37.155 [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" = ?) [22] 06:02:37.155 [debug] QUERY OK source="media_items" db=0.1ms idle=3.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [22] 06:02:37.156 [debug] QUERY OK source="media_items" db=0.2ms idle=2.6ms 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] 06:02:37.157 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [22] 06:02:37.158 [debug] QUERY OK source="media_items" db=0.2ms idle=3.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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] 06:02:37.158 [debug] QUERY OK source="media_items" db=0.6ms 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 (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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] 06:02:37.159 [info] Sent 200 in 21ms 06:02:37.229 [info] GET /sources/52 06:02:37.229 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "52"} Pipelines: [:browser] 06:02:37.230 [debug] QUERY OK source="sources" db=0.3ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 06:02:37.231 [debug] QUERY OK source="media_profiles" db=0.2ms idle=74.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] 06:02:38.055 [debug] QUERY OK source="tasks" db=823.8ms idle=73.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 (?,?,?,?)) [52, "executing", "available", "scheduled", "retryable"] 06:02:38.055 [debug] QUERY OK source="oban_jobs" db=0.3ms idle=896.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 (?,?)) [189158, 156581] 06:02:38.056 [debug] QUERY OK source="settings" db=0.1ms idle=825.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:38.056 [debug] QUERY OK source="settings" db=0.1ms idle=825.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:38.057 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:38.059 [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" = ?) [52] 06:02:38.060 [debug] QUERY OK source="media_items" db=0.7ms idle=3.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [52] 06:02:38.061 [debug] QUERY OK source="media_items" db=1.2ms idle=3.7ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [52, 10, 0] 06:02:38.063 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [52] 06:02:38.063 [debug] QUERY OK source="media_items" db=0.1ms idle=5.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [52] 06:02:38.064 [debug] QUERY OK source="media_items" db=0.5ms idle=4.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [52, 10, 0] 06:02:38.065 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 06:02:38.066 [debug] QUERY OK source="media_items" db=0.4ms idle=4.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [52] 06:02:38.067 [debug] QUERY OK source="media_items" db=1.0ms idle=3.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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 ? [52, 10, 0] 06:02:38.069 [info] Sent 200 in 840ms 06:02:42.044 [info] {"source":"oban","duration":8917,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:02:56.212 [info] GET /sources/43/media/2366280 06:02:56.212 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2366280", "prevent_download" => "true", "source_id" => "43"} Pipelines: [:browser] 06:02:56.212 [info] GET /sources/43/media/2350851 06:02:56.213 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2350851", "prevent_download" => "true", "source_id" => "43"} Pipelines: [:browser] 06:02:56.213 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=698.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" = ?) [2366280] 06:02:56.213 [debug] QUERY OK source="media_items" db=0.5ms idle=698.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" = ?) [2350851] 06:02:56.214 [debug] QUERY OK source="tasks" db=0.7ms idle=123.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" [2350851] 06:02:56.214 [debug] QUERY OK source="tasks" db=0.8ms idle=699.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" [2366280] 06:02:56.215 [debug] QUERY OK source="sources" db=1.3ms 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" = ?) [43] 06:02:56.215 [debug] QUERY OK source="sources" db=1.5ms idle=699.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:02:56.216 [debug] QUERY OK source="oban_jobs" db=0.4ms idle=0.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" = ?) [185707] 06:02:56.216 [debug] QUERY OK source="oban_jobs" db=0.5ms idle=2.0ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [181744] 06:02:56.216 [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 [] 06:02:56.217 [debug] QUERY OK source="settings" db=0.2ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:56.217 [debug] QUERY OK source="settings" db=0.2ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:56.217 [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 [] 06:02:56.217 [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 [] 06:02:56.218 [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 [] 06:02:56.219 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 06:02:56.219 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 06:02:56.220 [info] Sent 200 in 7ms 06:02:56.221 [info] Sent 200 in 8ms 06:02:56.224 [info] GET /sources/57/media/2358863 06:02:56.224 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2358863", "prevent_download" => "true", "source_id" => "57"} Pipelines: [:browser] 06:02:56.225 [debug] QUERY OK source="media_items" db=0.3ms idle=7.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [2358863] 06:02:56.226 [debug] QUERY OK source="tasks" db=0.3ms idle=7.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" [2358863] 06:02:56.226 [debug] QUERY OK source="sources" db=0.3ms idle=7.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [57] 06:02:56.227 [debug] QUERY OK source="oban_jobs" db=0.4ms idle=7.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 (?,?,?,?,?,?,?,?)) [183887, 183892, 185801, 185806, 187450, 187455, 189146, 189163] 06:02:56.227 [debug] QUERY OK source="settings" db=0.1ms idle=8.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:56.228 [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 [] 06:02:56.228 [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 [] 06:02:56.229 [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] 06:02:56.232 [info] Sent 200 in 7ms 06:02:56.315 [info] GET /sources/30/media/2376369 06:02:56.315 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2376369", "prevent_download" => "true", "source_id" => "30"} Pipelines: [:browser] 06:02:56.316 [debug] QUERY OK source="media_items" db=0.2ms queue=0.1ms idle=88.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" = ?) [2376369] 06:02:56.317 [debug] QUERY OK source="tasks" db=0.2ms idle=88.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" [2376369] 06:02:56.317 [debug] QUERY OK source="sources" db=0.2ms idle=88.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 06:02:56.317 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=88.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" = ?) [187902] 06:02:56.318 [debug] QUERY OK source="settings" db=0.1ms idle=88.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:56.318 [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 [] 06:02:56.319 [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 [] 06:02:56.320 [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] 06:02:56.322 [info] Sent 200 in 6ms 06:02:56.406 [info] GET /sources/46/media/2377781 06:02:56.406 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2377781", "prevent_download" => "true", "source_id" => "46"} Pipelines: [:browser] 06:02:56.407 [debug] QUERY OK source="media_items" db=0.3ms idle=89.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] 06:02:56.408 [debug] QUERY OK source="tasks" db=0.2ms idle=89.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" [2377781] 06:02:56.408 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [46] 06:02:56.409 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=89.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" = ?) [188292] 06:02:56.409 [debug] QUERY OK source="settings" db=0.1ms idle=89.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:56.410 [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 [] 06:02:56.410 [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 [] 06:02:56.411 [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] 06:02:56.413 [info] Sent 200 in 6ms 06:02:56.505 [info] GET /sources/53/media/2375741 06:02:56.505 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2375741", "prevent_download" => "true", "source_id" => "53"} Pipelines: [:browser] 06:02:56.506 [debug] QUERY OK source="media_items" db=0.3ms idle=96.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" = ?) [2375741] 06:02:56.507 [debug] QUERY OK source="tasks" db=0.1ms idle=97.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" [2375741] 06:02:56.507 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [53] 06:02:56.507 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=97.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" = ?) [187714] 06:02:56.508 [debug] QUERY OK source="settings" db=0.1ms idle=96.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:56.508 [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 [] 06:02:56.509 [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 [] 06:02:56.509 [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] 06:02:56.512 [info] Sent 200 in 6ms 06:02:56.596 [info] GET /sources/43902898-91ce-4144-8493-f87e445f777b/feed.xml 06:02:56.596 [debug] Processing with PinchflatWeb.Podcasts.PodcastController.rss_feed/2 Parameters: %{"uuid" => "43902898-91ce-4144-8493-f87e445f777b"} Pipelines: [:maybe_basic_auth] 06:02:56.597 [debug] QUERY OK source="sources" db=1.0ms queue=0.2ms idle=88.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."uuid" = ?) ["43902898-91ce-4144-8493-f87e445f777b"] 06:02:56.600 [debug] QUERY OK source="media_items" db=1.9ms queue=0.2ms idle=90.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" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? [57, 2000] 06:02:56.608 [debug] QUERY OK source="source_metadata" db=1.9ms queue=0.1ms idle=97.5ms SELECT s0."id", s0."metadata_filepath", s0."fanart_filepath", s0."poster_filepath", s0."banner_filepath", s0."source_id", s0."inserted_at", s0."updated_at", s0."source_id" FROM "source_metadata" AS s0 WHERE (s0."source_id" = ?) [57] 06:02:56.609 [debug] QUERY OK source="media_metadata" db=0.8ms idle=99.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" = ?) [2351075] 06:02:56.609 [info] Sent 200 in 13ms 06:02:56.688 [info] GET /sources/55/media/2378747 06:02:56.688 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2378747", "prevent_download" => "true", "source_id" => "55"} Pipelines: [:browser] 06:02:56.689 [debug] QUERY OK source="media_items" db=0.2ms idle=178.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" = ?) [2378747] 06:02:56.689 [debug] QUERY OK source="tasks" db=0.1ms idle=91.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" [2378747] 06:02:56.690 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [55] 06:02:56.690 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=82.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" = ?) [188557] 06:02:56.691 [debug] QUERY OK source="settings" db=0.1ms idle=81.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:56.691 [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 [] 06:02:56.692 [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 [] 06:02:56.692 [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] 06:02:56.694 [info] Sent 200 in 6ms 06:02:56.778 [info] GET /media/63076157-51bd-4b6e-9f6a-ae4c1e2d1894/stream 06:02:56.778 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "63076157-51bd-4b6e-9f6a-ae4c1e2d1894"} Pipelines: [:maybe_basic_auth] 06:02:56.779 [debug] QUERY OK source="media_items" db=0.6ms idle=88.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" = ?) ["63076157-51bd-4b6e-9f6a-ae4c1e2d1894"] 06:02:56.780 [debug] Invalid range request for media item: 63076157-51bd-4b6e-9f6a-ae4c1e2d1894 - serving full file 06:02:56.780 [info] Sent 200 in 1ms 06:02:56.880 [info] GET /media/9a19c444-120b-4fe5-a8fb-047dd59d33da/stream 06:02:56.880 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "9a19c444-120b-4fe5-a8fb-047dd59d33da"} Pipelines: [:maybe_basic_auth] 06:02:56.885 [debug] QUERY OK source="media_items" db=3.9ms idle=189.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" = ?) ["9a19c444-120b-4fe5-a8fb-047dd59d33da"] 06:02:56.885 [debug] Invalid range request for media item: 9a19c444-120b-4fe5-a8fb-047dd59d33da - serving full file 06:02:56.885 [info] Sent 200 in 4ms 06:02:57.092 [info] GET /media/7945644d-2dfe-471c-9338-2d6fd7acf585/stream 06:02:57.092 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "7945644d-2dfe-471c-9338-2d6fd7acf585"} Pipelines: [:maybe_basic_auth] 06:02:57.093 [info] GET /media/59ec1403-5ce2-4db5-b658-46cf4d4d7432/stream 06:02:57.094 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "59ec1403-5ce2-4db5-b658-46cf4d4d7432"} Pipelines: [:maybe_basic_auth] 06:02:57.094 [debug] QUERY OK source="media_items" db=1.4ms queue=0.1ms idle=401.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" = ?) ["7945644d-2dfe-471c-9338-2d6fd7acf585"] 06:02:57.095 [debug] Invalid range request for media item: 7945644d-2dfe-471c-9338-2d6fd7acf585 - serving full file 06:02:57.095 [debug] QUERY OK source="media_items" db=1.1ms idle=401.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"] 06:02:57.095 [info] Sent 200 in 2ms 06:02:57.096 [debug] Invalid range request for media item: 59ec1403-5ce2-4db5-b658-46cf4d4d7432 - serving full file 06:02:57.096 [info] Sent 200 in 2ms 06:02:57.740 [info] GET /sources/43/media/2350851/force_download 06:02:57.741 [info] GET /sources/43/media/2366280/force_download 06:02:57.741 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=961.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:57.742 [info] GET /sources/57/media/2358863/force_download 06:02:57.742 [debug] QUERY OK source="settings" db=0.7ms idle=856.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:57.742 [debug] QUERY OK source="settings" db=0.6ms idle=648.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:57.742 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:02:57.743 [info] GET /sources/37/media/2375636/force_download 06:02:57.743 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=647.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:57.743 [info] GET /sources/30/media/2376369/force_download 06:02:57.743 [debug] QUERY OK source="settings" db=0.9ms queue=0.1ms idle=647.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:57.744 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:02:57.744 [debug] QUERY OK source="settings" db=0.6ms queue=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 [] 06:02:57.744 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:02:57.744 [debug] QUERY OK source="settings" db=0.9ms 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 [] 06:02:57.744 [debug] QUERY OK source="settings" db=0.9ms queue=0.4ms 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 [] 06:02:57.746 [debug] QUERY OK source="settings" db=0.9ms 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 [] 06:02:57.746 [debug] QUERY OK source="settings" db=1.1ms queue=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:02:57.746 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:02:57.746 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:02:57.743 [error] #PID<0.167005.0> running PinchflatWeb.Endpoint (connection #PID<0.167004.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/43/media/2350851/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/2350851/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167004.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2350851/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35650}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167005.0>, params: %{}, path_info: ["sources", "43", "media", "2350851", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://tubesync.cochrun.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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/43/media/2350851/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJi2AxYDD5bIEwEARXeC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167004.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2350851/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35650}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/2350851/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167004.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2350851/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35650}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167005.0>, params: %{}, path_info: ["sources", "43", "media", "2350851", "force_download"], path_ (truncated) 06:02:57.745 [error] #PID<0.167009.0> running PinchflatWeb.Endpoint (connection #PID<0.167008.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/57/media/2358863/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/2358863/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2358863/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35674}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167009.0>, params: %{}, path_info: ["sources", "57", "media", "2358863", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://tubesync.cochrun.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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/57/media/2358863/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJi2AxYaL3iSRrYARXgC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2358863/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35674}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/2358863/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/57/media/2358863/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35674}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167009.0>, params: %{}, path_info: ["sources", "57", "media", "2358863", "force_download"], path_ (truncated) 06:02:57.744 [error] #PID<0.167007.0> running PinchflatWeb.Endpoint (connection #PID<0.167006.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/43/media/2366280/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/2366280/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167006.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2366280/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35662}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167007.0>, params: %{}, path_info: ["sources", "43", "media", "2366280", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://tubesync.cochrun.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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/43/media/2366280/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJi2AxYODOk5RO0ARXfC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167006.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2366280/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35662}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/2366280/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167006.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2366280/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35662}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167007.0>, params: %{}, path_info: ["sources", "43", "media", "2366280", "force_download"], path_ (truncated) 06:02:57.747 [error] #PID<0.167013.0> running PinchflatWeb.Endpoint (connection #PID<0.167012.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/30/media/2376369/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/2376369/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167012.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2376369/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35692}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167013.0>, params: %{}, path_info: ["sources", "30", "media", "2376369", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://tubesync.cochrun.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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/30/media/2376369/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJi2AxYvCYJp34EAAABF"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167012.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2376369/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35692}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/2376369/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167012.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/media/2376369/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35692}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167013.0>, params: %{}, path_info: ["sources", "30", "media", "2376369", "force_download"], path_ (truncated) 06:02:57.748 [error] #PID<0.167011.0> running PinchflatWeb.Endpoint (connection #PID<0.167010.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/37/media/2375636/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/37/media/2375636/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167010.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/37/media/2375636/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35676}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167011.0>, params: %{}, path_info: ["sources", "37", "media", "2375636", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://tubesync.cochrun.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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/37/media/2375636/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJi2AxYlnH9MWsMAAAAF"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167010.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/37/media/2375636/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35676}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/37/media/2375636/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167010.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/37/media/2375636/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35676}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYM1dvczIxdXV4SEktM282eFpVbXY1cmJP.Q4yrlbbKb8m6LJcyKJUcxyBYJKEYTkziyvECd9I-efU" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167011.0>, params: %{}, path_info: ["sources", "37", "media", "2375636", "force_download"], path_ (truncated) 06:03:00.162 [info] {"source":"oban","duration":314,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:03:01.046 [info] GET /sources/46/sync_files_on_disk 06:03:01.046 [info] GET /sources/30/force_redownload 06:03:01.046 [info] GET /sources/37/force_redownload 06:03:01.047 [debug] QUERY OK source="settings" db=0.6ms idle=268.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:01.047 [debug] QUERY OK source="settings" db=0.6ms idle=884.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:01.047 [debug] QUERY OK source="settings" db=0.5ms idle=268.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:01.047 [debug] QUERY OK source="settings" db=0.1ms idle=268.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:01.047 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:03:01.047 [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 [] 06:03:01.047 [debug] QUERY OK source="settings" db=0.1ms idle=151.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:01.048 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:03:01.048 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:03:01.048 [error] #PID<0.167014.0> running PinchflatWeb.Endpoint (connection #PID<0.167010.0>, stream id 2) 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.167010.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}, 35676}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167014.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: %{}, 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.182"}, {"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", "GJi2A9sIUWW6RoYARXhC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167010.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}, 35676}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167010.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}, 35676}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167014.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: %{}, 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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/46/sync_files_on_disk", resp_body (truncated) 06:03:01.048 [error] #PID<0.167015.0> running PinchflatWeb.Endpoint (connection #PID<0.167012.0>, stream id 2) 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.167012.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35692}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167015.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: %{}, 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.182"}, {"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", "GJi2A9sKBSsj9x8AAACF"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167012.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35692}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167012.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35692}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167015.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: %{}, 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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/30/force_redownload", resp_body: nil, res (truncated) 06:03:01.048 [error] #PID<0.167016.0> running PinchflatWeb.Endpoint (connection #PID<0.167006.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/37/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/37/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167006.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/37/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35662}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167016.0>, params: %{}, path_info: ["sources", "37", "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: %{}, 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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/37/force_redownload", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJi2A9sNmrbneTMAA7yD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167006.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/37/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35662}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/37/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167006.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/37/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35662}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167016.0>, params: %{}, path_info: ["sources", "37", "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: %{}, 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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/37/force_redownload", resp_body: nil, res (truncated) 06:03:01.057 [info] GET /sources/53/force_redownload 06:03:01.057 [debug] QUERY OK source="settings" db=0.2ms idle=10.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:01.058 [debug] QUERY OK source="settings" db=0.1ms idle=10.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:01.058 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:03:01.058 [error] #PID<0.167017.0> running PinchflatWeb.Endpoint (connection #PID<0.167010.0>, stream id 3) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/53/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/53/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167010.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/53/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35676}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167017.0>, params: %{}, path_info: ["sources", "53", "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: %{}, 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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/53/force_redownload", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJi2A9uwDpXhHhkARXiC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167010.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/53/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35676}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/53/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167010.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/53/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35676}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167017.0>, params: %{}, path_info: ["sources", "53", "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: %{}, 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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/53/force_redownload", resp_body: nil, res (truncated) 06:03:01.154 [info] GET /sources/46/force_redownload 06:03:01.155 [debug] QUERY OK source="settings" db=0.2ms idle=107.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:01.155 [debug] QUERY OK source="settings" db=0.1ms idle=107.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:01.156 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:03:01.156 [error] #PID<0.167018.0> running PinchflatWeb.Endpoint (connection #PID<0.167010.0>, stream id 4) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/46/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/46/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167010.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35676}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167018.0>, params: %{}, path_info: ["sources", "46", "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: %{}, 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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/46/force_redownload", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJi2A-GA62OXPIQARXjC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167010.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35676}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/46/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167010.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35676}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167018.0>, params: %{}, path_info: ["sources", "46", "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: %{}, 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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/46/force_redownload", resp_body: nil, res (truncated) 06:03:01.248 [info] GET /sources/37/force_index 06:03:01.249 [debug] QUERY OK source="settings" db=0.2ms idle=201.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:01.249 [debug] QUERY OK source="settings" db=0.1ms idle=191.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:01.249 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:03:01.250 [error] #PID<0.167019.0> running PinchflatWeb.Endpoint (connection #PID<0.167010.0>, stream id 5) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/37/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/37/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167010.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/37/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35676}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167019.0>, params: %{}, path_info: ["sources", "37", "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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/37/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJi2A-cUtwNP0N4ARXkC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167010.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/37/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35676}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/37/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167010.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/37/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35676}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167019.0>, params: %{}, path_info: ["sources", "37", "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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/37/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ (truncated) 06:03:01.343 [info] GET /sources/30/force_index 06:03:01.344 [debug] QUERY OK source="settings" db=0.2ms idle=285.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:01.344 [debug] QUERY OK source="settings" db=0.1ms idle=188.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:01.345 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:03:01.345 [error] #PID<0.167020.0> running PinchflatWeb.Endpoint (connection #PID<0.167010.0>, stream id 6) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/30/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/30/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167010.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35676}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167020.0>, params: %{}, path_info: ["sources", "30", "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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/30/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJi2A-zAFmoSGhkARXlC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167010.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35676}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167010.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35676}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167020.0>, params: %{}, path_info: ["sources", "30", "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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/30/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ (truncated) 06:03:01.438 [info] GET /sources/53/force_index 06:03:01.439 [debug] QUERY OK source="settings" db=0.3ms idle=283.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:01.440 [debug] QUERY OK source="settings" db=0.1ms 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 [] 06:03:01.440 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:03:01.440 [error] #PID<0.167021.0> running PinchflatWeb.Endpoint (connection #PID<0.167010.0>, stream id 7) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/53/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/53/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167010.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/53/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35676}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167021.0>, params: %{}, path_info: ["sources", "53", "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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/53/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJi2A_JxDxjiz1cARXmC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167010.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/53/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35676}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/53/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167010.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/53/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35676}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167021.0>, params: %{}, path_info: ["sources", "53", "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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/53/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ (truncated) 06:03:01.530 [info] GET /sources/46/force_index 06:03:01.530 [debug] QUERY OK source="settings" db=0.3ms idle=280.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:01.531 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms 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 [] 06:03:01.531 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:03:01.531 [error] #PID<0.167022.0> running PinchflatWeb.Endpoint (connection #PID<0.167010.0>, stream id 8) 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.167010.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35676}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167022.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.182"}, {"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", "GJi2A_fednr-7nkARXnC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167010.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35676}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/46/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167010.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35676}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167022.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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/46/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ (truncated) 06:03:01.616 [info] GET /sources/37/force_metadata_refresh 06:03:01.617 [debug] QUERY OK source="settings" db=0.2ms idle=272.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:01.617 [debug] QUERY OK source="settings" db=0.2ms idle=177.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:01.618 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:03:01.618 [error] #PID<0.167023.0> running PinchflatWeb.Endpoint (connection #PID<0.167010.0>, stream id 9) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/37/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/37/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167010.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/37/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35676}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167023.0>, params: %{}, path_info: ["sources", "37", "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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/37/force_metadata_refresh", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJi2A_0IBQ47mm8ARXoC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167010.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/37/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35676}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/37/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167010.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/37/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 35676}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167023.0>, params: %{}, path_info: ["sources", "37", "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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/37/forc (truncated) 06:03:06.634 [info] GET /sources/30/force_metadata_refresh 06:03:06.634 [debug] QUERY OK source="settings" db=0.2ms idle=1855.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:06.635 [debug] QUERY OK source="settings" db=0.1ms idle=1856.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:06.635 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:03:06.635 [error] #PID<0.167027.0> running PinchflatWeb.Endpoint (connection #PID<0.167026.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/30/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/30/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167026.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55056}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167027.0>, params: %{}, path_info: ["sources", "30", "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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/30/force_metadata_refresh", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJi2BSgYNEMJ5DAAUx6B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167026.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55056}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167026.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55056}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167027.0>, params: %{}, path_info: ["sources", "30", "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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/30/forc (truncated) 06:03:11.627 [info] GET /sources/53/force_metadata_refresh 06:03:11.628 [debug] QUERY OK source="settings" db=0.2ms idle=1849.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:11.629 [debug] QUERY OK source="settings" db=0.1ms idle=1850.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:11.629 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:03:11.629 [error] #PID<0.167028.0> running PinchflatWeb.Endpoint (connection #PID<0.167026.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/53/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/53/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167026.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/53/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55056}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167028.0>, params: %{}, path_info: ["sources", "53", "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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/53/force_metadata_refresh", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJi2BlHAQ7UNFGUARXpC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167026.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/53/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55056}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/53/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167026.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/53/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55056}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167028.0>, params: %{}, path_info: ["sources", "53", "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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/53/forc (truncated) 06:03:12.054 [info] {"source":"oban","duration":9308,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:03:16.637 [info] GET /sources/46/force_metadata_refresh 06:03:16.638 [debug] QUERY OK source="settings" db=0.2ms idle=1859.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:16.639 [debug] QUERY OK source="settings" db=0.2ms idle=1715.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:16.639 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:03:16.639 [error] #PID<0.167030.0> running PinchflatWeb.Endpoint (connection #PID<0.167029.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/46/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/46/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167029.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 44478}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167030.0>, params: %{}, path_info: ["sources", "46", "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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/46/force_metadata_refresh", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJi2B3xcBLvQz8oARXqC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167029.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 44478}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167029.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 44478}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167030.0>, params: %{}, path_info: ["sources", "46", "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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/46/forc (truncated) 06:03:21.678 [info] GET /media_profiles/1 06:03:21.678 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.show/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 06:03:21.679 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.3ms idle=1900.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:03:21.681 [debug] QUERY OK source="sources" db=0.7ms queue=0.3ms idle=1901.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."media_profile_id" = ?) ORDER BY s0."custom_name" [1] 06:03:21.682 [debug] QUERY OK source="settings" db=0.1ms idle=1903.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:21.683 [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 [] 06:03:21.683 [debug] QUERY OK source="settings" db=0.1ms idle=747.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:21.686 [info] Sent 200 in 8ms 06:03:26.693 [info] GET /media_profiles/3 06:03:26.693 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.show/2 Parameters: %{"id" => "3"} Pipelines: [:browser] 06:03:26.694 [debug] QUERY OK source="media_profiles" db=0.4ms idle=1915.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] 06:03:26.695 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1916.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", 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] 06:03:26.696 [debug] QUERY OK source="settings" db=0.2ms idle=1917.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:26.696 [debug] QUERY OK source="settings" db=0.2ms idle=1752.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:26.697 [debug] QUERY OK source="settings" db=0.1ms idle=751.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:26.700 [info] Sent 200 in 7ms 06:03:31.695 [info] GET /sources/26/edit 06:03:31.696 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "26"} Pipelines: [:browser] 06:03:31.696 [debug] QUERY OK source="sources" db=0.3ms idle=1917.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" = ?) [26] 06:03:31.697 [debug] QUERY OK source="media_profiles" db=0.3ms idle=1918.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 06:03:31.698 [debug] QUERY OK source="settings" db=0.1ms idle=1919.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:31.698 [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 [] 06:03:31.699 [debug] QUERY OK source="settings" db=0.1ms idle=742.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:31.702 [info] Sent 200 in 6ms 06:03:36.678 [info] GET /sources/17/edit 06:03:36.678 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "17"} Pipelines: [:browser] 06:03:36.679 [debug] QUERY OK source="sources" db=0.4ms idle=1900.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" = ?) [17] 06:03:36.680 [debug] QUERY OK source="media_profiles" db=0.2ms idle=1901.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" [] 06:03:36.680 [debug] QUERY OK source="settings" db=0.2ms idle=1901.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:36.681 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=1717.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:36.681 [debug] QUERY OK source="settings" db=0.2ms idle=716.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:36.685 [info] Sent 200 in 7ms 06:03:42.066 [info] {"source":"oban","duration":10820,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:03:52.387 [info] GET /sources/37 06:03:52.387 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"delete_files" => "true", "id" => "37"} Pipelines: [:browser] 06:03:52.388 [debug] QUERY OK source="sources" db=0.3ms idle=609.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] 06:03:52.388 [debug] QUERY OK source="media_profiles" db=0.1ms idle=610.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] 06:03:52.421 [debug] QUERY OK source="tasks" db=31.8ms idle=610.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 (?,?,?,?)) [37, "executing", "available", "scheduled", "retryable"] 06:03:52.421 [debug] QUERY OK source="oban_jobs" db=0.2ms queue=0.1ms idle=642.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" = ?) [189111] 06:03:52.422 [debug] QUERY OK source="settings" db=0.1ms idle=425.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:52.422 [debug] QUERY OK source="settings" db=0.1ms idle=34.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:52.423 [debug] QUERY OK source="settings" db=0.1ms idle=34.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:52.425 [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" = ?) [37] 06:03:52.429 [debug] QUERY OK source="media_items" db=3.5ms idle=4.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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] 06:03:52.434 [debug] QUERY OK source="media_items" db=4.3ms idle=7.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [37, 10, 0] 06:03:52.436 [debug] QUERY OK source="sources" db=0.2ms idle=13.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:03:52.436 [debug] QUERY OK source="media_items" db=0.3ms idle=12.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [37] 06:03:52.439 [debug] QUERY OK source="media_items" db=2.8ms idle=11.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [37, 10, 0] 06:03:52.441 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [37] 06:03:52.443 [debug] QUERY OK source="media_items" db=1.8ms idle=7.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [37] 06:03:52.448 [debug] QUERY OK source="media_items" db=4.1ms idle=7.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [37, 10, 0] 06:03:52.449 [info] Sent 200 in 62ms 06:03:56.923 [info] GET /sources/30 06:03:56.923 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"delete_files" => "true", "id" => "30"} Pipelines: [:browser] 06:03:56.924 [debug] QUERY OK source="sources" db=0.4ms idle=1145.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] 06:03:56.925 [debug] QUERY OK source="media_profiles" db=0.4ms idle=1146.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] 06:03:56.987 [debug] QUERY OK source="tasks" db=62.0ms idle=1147.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [30, "executing", "available", "scheduled", "retryable"] 06:03:56.988 [debug] QUERY OK source="oban_jobs" db=0.3ms queue=0.1ms idle=1209.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" = ?) [189128] 06:03:56.989 [debug] QUERY OK source="settings" db=0.1ms 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 [] 06:03:56.989 [debug] QUERY OK source="settings" db=0.1ms idle=64.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:56.990 [debug] QUERY OK source="settings" db=0.1ms idle=64.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:03:56.992 [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" = ?) [30] 06:03:57.001 [debug] QUERY OK source="media_items" db=8.6ms idle=3.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [30] 06:03:57.011 [debug] QUERY OK source="media_items" db=9.4ms idle=12.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [30, 10, 0] 06:03:57.012 [debug] QUERY OK source="sources" db=0.2ms idle=21.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] 06:03:57.013 [debug] QUERY OK source="media_items" db=0.5ms idle=20.3ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [30] 06:03:57.014 [debug] QUERY OK source="media_items" db=1.3ms idle=12.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 ? [30, 10, 0] 06:03:57.016 [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" = ?) [30] 06:03:57.025 [debug] QUERY OK source="media_items" db=9.2ms idle=4.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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"))))) [30] 06:03:57.036 [debug] QUERY OK source="media_items" db=10.5ms idle=13.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 ? [30, 10, 0] 06:03:57.039 [info] Sent 200 in 115ms 06:04:00.163 [info] {"source":"oban","duration":340,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:04:01.814 [info] GET /sources/46/media/1782344 06:04:01.815 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1782344", "source_id" => "46"} Pipelines: [:browser] 06:04:01.815 [debug] QUERY OK source="media_items" db=0.2ms idle=1036.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" = ?) [1782344] 06:04:01.816 [debug] QUERY OK source="tasks" db=0.1ms idle=1037.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" [1782344] 06:04:01.816 [debug] QUERY OK source="sources" db=0.3ms idle=1037.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:04:01.817 [debug] QUERY OK source="settings" db=0.1ms idle=797.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:04:01.817 [debug] QUERY OK source="settings" db=0.3ms idle=38.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:04:01.818 [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 [] 06:04:01.819 [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] 06:04:01.820 [info] Sent 200 in 5ms 06:04:06.816 [info] GET /sources/53/media/1550146 06:04:06.816 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1550146", "source_id" => "53"} Pipelines: [:browser] 06:04:06.817 [debug] QUERY OK source="media_items" db=0.2ms idle=1038.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" = ?) [1550146] 06:04:06.817 [debug] QUERY OK source="tasks" db=0.2ms idle=1039.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" [1550146] 06:04:06.818 [debug] QUERY OK source="sources" db=0.3ms idle=1039.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [53] 06:04:06.818 [debug] QUERY OK source="settings" db=0.2ms idle=1039.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:04:06.819 [debug] QUERY OK source="settings" db=0.1ms idle=791.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:04:06.819 [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 [] 06:04:06.820 [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] 06:04:06.822 [info] Sent 200 in 6ms 06:04:12.076 [info] {"source":"oban","duration":8926,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:04:14.034 [info] GET /sources/53/media/1550148 06:04:14.034 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1550148", "source_id" => "53"} Pipelines: [:browser] 06:04:14.035 [debug] QUERY OK source="media_items" db=0.3ms idle=1256.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" = ?) [1550148] 06:04:14.035 [debug] QUERY OK source="tasks" db=0.2ms idle=1256.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" [1550148] 06:04:14.035 [debug] QUERY OK source="sources" db=0.3ms idle=1256.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [53] 06:04:14.036 [debug] QUERY OK source="settings" db=0.1ms idle=996.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:04:14.036 [debug] QUERY OK source="settings" db=0.1ms idle=257.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:04:14.037 [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 [] 06:04:14.037 [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] 06:04:14.039 [info] Sent 200 in 4ms 06:04:18.809 [info] GET /sources/53/media/1550150/edit 06:04:18.809 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1550150", "source_id" => "53"} Pipelines: [:browser] 06:04:18.810 [debug] QUERY OK source="media_items" db=0.3ms idle=1031.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" = ?) [1550150] 06:04:18.811 [debug] QUERY OK source="settings" db=0.1ms idle=1032.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:04:18.811 [debug] QUERY OK source="settings" db=0.1ms idle=1032.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:04:18.812 [debug] QUERY OK source="settings" db=0.1ms idle=1033.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:04:18.813 [info] Sent 200 in 3ms 06:04:23.810 [info] GET /sources/53/media/1550158 06:04:23.810 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1550158", "source_id" => "53"} Pipelines: [:browser] 06:04:23.811 [debug] QUERY OK source="media_items" db=0.3ms idle=1032.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" = ?) [1550158] 06:04:23.812 [debug] QUERY OK source="tasks" db=0.1ms idle=1033.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" [1550158] 06:04:23.812 [debug] QUERY OK source="sources" db=0.1ms idle=1033.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [53] 06:04:23.812 [debug] QUERY OK source="settings" db=0.1ms idle=1034.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:04:23.813 [debug] QUERY OK source="settings" db=0.0ms idle=757.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:04:23.813 [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 [] 06:04:23.814 [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] 06:04:23.815 [info] Sent 200 in 5ms 06:04:28.811 [info] GET /sources/46/media/1789693/edit 06:04:28.811 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1789693", "source_id" => "46"} Pipelines: [:browser] 06:04:28.812 [debug] QUERY OK source="media_items" db=0.2ms idle=1033.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" = ?) [1789693] 06:04:28.812 [debug] QUERY OK source="settings" db=0.1ms idle=1034.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:04:28.813 [debug] QUERY OK source="settings" db=0.1ms idle=1034.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:04:28.813 [debug] QUERY OK source="settings" db=0.1ms idle=1034.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:04:28.815 [info] Sent 200 in 3ms 06:04:33.829 [info] GET /sources/53/media/1550155 06:04:33.829 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1550155", "source_id" => "53"} Pipelines: [:browser] 06:04:33.829 [debug] QUERY OK source="media_items" db=0.2ms idle=1051.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" = ?) [1550155] 06:04:33.830 [debug] QUERY OK source="tasks" db=0.1ms idle=1051.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" [1550155] 06:04:33.830 [debug] QUERY OK source="sources" db=0.4ms idle=1051.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [53] 06:04:33.831 [debug] QUERY OK source="settings" db=0.1ms idle=1052.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:04:33.831 [debug] QUERY OK source="settings" db=0.1ms idle=765.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:04:33.832 [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 [] 06:04:33.833 [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] 06:04:33.834 [info] Sent 200 in 5ms 06:04:38.813 [info] GET /sources/37/media/382019 06:04:38.813 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "382019", "source_id" => "37"} Pipelines: [:browser] 06:04:38.813 [debug] QUERY OK source="media_items" db=0.3ms 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 WHERE (m0."id" = ?) [382019] 06:04:38.814 [debug] QUERY OK source="sources" db=0.3ms idle=1035.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:04:38.815 [debug] QUERY OK source="tasks" db=0.8ms idle=1035.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" [382019] 06:04:38.815 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=1036.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 (?,?,?)) [116351, 143629, 168386] 06:04:38.816 [debug] QUERY OK source="settings" db=0.0ms idle=741.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:04:38.816 [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 [] 06:04:38.817 [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 [] 06:04:38.818 [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] 06:04:38.819 [info] Sent 200 in 6ms 06:04:42.087 [info] {"source":"oban","duration":9784,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 06:04:43.817 [info] GET /sources/53/media/1550150 06:04:43.817 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1550150", "source_id" => "53"} Pipelines: [:browser] 06:04:43.820 [debug] QUERY OK source="media_items" db=2.5ms idle=1039.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" = ?) [1550150] 06:04:43.826 [debug] QUERY OK source="tasks" db=5.4ms idle=1042.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" [1550150] 06:04:43.828 [debug] QUERY OK source="sources" db=7.8ms idle=1042.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" = ?) [53] 06:04:43.829 [debug] QUERY OK source="settings" db=0.1ms idle=746.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:04:43.829 [debug] QUERY OK source="settings" db=0.1ms idle=51.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:04:43.830 [debug] QUERY OK source="settings" db=0.1ms idle=9.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:04:43.831 [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] 06:04:43.833 [info] Sent 200 in 16ms 06:04:48.817 [info] GET /sources/53/media/1550149 06:04:48.818 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1550149", "source_id" => "53"} Pipelines: [:browser] 06:04:48.819 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=1040.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" = ?) [1550149] 06:04:48.819 [debug] QUERY OK source="tasks" db=0.2ms idle=1041.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" [1550149] 06:04:48.820 [debug] QUERY OK source="sources" db=0.2ms idle=1041.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [53] 06:04:48.820 [debug] QUERY OK source="settings" db=0.2ms idle=1041.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:04:48.820 [debug] QUERY OK source="settings" db=0.1ms idle=727.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:04:48.821 [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 [] 06:04:48.823 [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] 06:04:48.825 [info] Sent 200 in 7ms 06:04:53.818 [info] GET /sources/37/force_download_pending 06:04:53.819 [debug] QUERY OK source="settings" db=0.2ms idle=1040.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:04:53.819 [debug] QUERY OK source="settings" db=0.1ms idle=1040.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:04:53.819 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:04:53.820 [error] #PID<0.167085.0> running PinchflatWeb.Endpoint (connection #PID<0.167067.0>, stream id 5) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/37/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/37/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167067.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/37/force_download_pending", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 50616}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167085.0>, params: %{}, path_info: ["sources", "37", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/37/force_download_pending", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJi2HhzFumXyUb0AUyHB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167067.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/37/force_download_pending", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 50616}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/37/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167067.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/37/force_download_pending", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 50616}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167085.0>, params: %{}, path_info: ["sources", "37", "force_download_pending"], path_params: %{}, port: 80, private: %{ (truncated) 06:04:58.820 [info] GET /sources/30/force_download_pending 06:04:58.821 [debug] QUERY OK source="settings" db=0.2ms idle=1042.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:04:58.821 [debug] QUERY OK source="settings" db=0.2ms idle=1042.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:04:58.821 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:04:58.822 [error] #PID<0.167086.0> running PinchflatWeb.Endpoint (connection #PID<0.167067.0>, stream id 6) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/30/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/30/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167067.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/force_download_pending", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 50616}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167086.0>, params: %{}, path_info: ["sources", "30", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/30/force_download_pending", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJi2H0bt3l-3AfsAUyIB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167067.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/force_download_pending", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 50616}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167067.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/force_download_pending", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 50616}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167086.0>, params: %{}, path_info: ["sources", "30", "force_download_pending"], path_params: %{}, port: 80, private: %{ (truncated) 06:05:00.164 [info] {"source":"oban","duration":269,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:05:03.824 [info] GET /sources/53/force_download_pending 06:05:03.827 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=1047.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:03.828 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=1049.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:03.829 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:05:03.830 [error] #PID<0.167089.0> running PinchflatWeb.Endpoint (connection #PID<0.167067.0>, stream id 7) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/53/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/53/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167067.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/53/force_download_pending", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 50616}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167089.0>, params: %{}, path_info: ["sources", "53", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/53/force_download_pending", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJi2IHE13XT78sMAUyKB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167067.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/53/force_download_pending", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 50616}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/53/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167067.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/53/force_download_pending", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 50616}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167089.0>, params: %{}, path_info: ["sources", "53", "force_download_pending"], path_params: %{}, port: 80, private: %{ (truncated) 06:05:08.827 [info] GET /sources/46/media/1782344/edit 06:05:08.828 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1782344", "source_id" => "46"} Pipelines: [:browser] 06:05:08.828 [debug] QUERY OK source="media_items" db=0.3ms idle=1049.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" = ?) [1782344] 06:05:08.829 [debug] QUERY OK source="settings" db=0.1ms idle=1050.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:08.829 [debug] QUERY OK source="settings" db=0.1ms idle=1051.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:08.830 [debug] QUERY OK source="settings" db=0.1ms idle=697.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:08.832 [info] Sent 200 in 4ms 06:05:12.102 [info] {"source":"oban","duration":13907,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:05:13.831 [info] GET /sources/53/media/1550146/edit 06:05:13.831 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1550146", "source_id" => "53"} Pipelines: [:browser] 06:05:13.832 [debug] QUERY OK source="media_items" db=0.4ms idle=1053.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" = ?) [1550146] 06:05:13.832 [debug] QUERY OK source="settings" db=0.1ms idle=1054.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:13.833 [debug] QUERY OK source="settings" db=0.1ms idle=1054.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:13.834 [debug] QUERY OK source="settings" db=0.1ms idle=691.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:13.835 [info] Sent 200 in 4ms 06:05:18.832 [info] GET /sources/46/media/1789693 06:05:18.832 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1789693", "source_id" => "46"} Pipelines: [:browser] 06:05:18.833 [debug] QUERY OK source="media_items" db=0.3ms idle=1054.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" = ?) [1789693] 06:05:18.834 [debug] QUERY OK source="tasks" db=0.2ms idle=1055.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" [1789693] 06:05:18.834 [debug] QUERY OK source="sources" db=0.4ms idle=1055.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] 06:05:18.835 [debug] QUERY OK source="settings" db=0.1ms idle=1056.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:18.835 [debug] QUERY OK source="settings" db=0.2ms idle=681.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:18.836 [debug] QUERY OK source="settings" db=0.2ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:18.837 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 06:05:18.839 [info] Sent 200 in 7ms 06:05:23.832 [info] GET /sources/46/force_download_pending 06:05:23.833 [debug] QUERY OK source="settings" db=0.2ms idle=1054.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:23.834 [debug] QUERY OK source="settings" db=0.1ms idle=1054.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:23.834 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:05:23.834 [error] #PID<0.167096.0> running PinchflatWeb.Endpoint (connection #PID<0.167067.0>, stream id 11) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/46/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/46/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167067.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/force_download_pending", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 50616}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167096.0>, params: %{}, path_info: ["sources", "46", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/46/force_download_pending", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJi2JRnI8CGT0CoAUyOB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167067.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/force_download_pending", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 50616}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167067.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/46/force_download_pending", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 50616}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYZnVVU0tFX0UzQmpzQmZ3TGhLb0NrdzFy.udUR7SdmjeTt_7_DC1fsHmyXMeIYt6EVA2WO4YXfbOM" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167096.0>, params: %{}, path_info: ["sources", "46", "force_download_pending"], path_params: %{}, port: 80, private: %{ (truncated) 06:05:28.835 [info] GET /sources/53/media/1550147/edit 06:05:28.836 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1550147", "source_id" => "53"} Pipelines: [:browser] 06:05:28.836 [debug] QUERY OK source="media_items" db=0.2ms idle=1057.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" = ?) [1550147] 06:05:28.836 [debug] QUERY OK source="settings" db=0.1ms idle=1058.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:28.837 [debug] QUERY OK source="settings" db=0.0ms idle=663.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:28.837 [debug] QUERY OK source="settings" db=0.0ms idle=58.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:28.838 [info] Sent 200 in 2ms 06:05:33.836 [info] GET /sources/37/media/382020/edit 06:05:33.836 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "382020", "source_id" => "37"} Pipelines: [:browser] 06:05:33.836 [debug] QUERY OK source="media_items" db=0.3ms idle=1058.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" = ?) [382020] 06:05:33.837 [debug] QUERY OK source="settings" db=0.1ms idle=1058.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:33.837 [debug] QUERY OK source="settings" db=0.1ms idle=1058.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:33.838 [debug] QUERY OK source="settings" db=0.1ms idle=1059.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:33.839 [info] Sent 200 in 3ms 06:05:39.112 [info] GET /sources/new 06:05:39.112 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{"template_id" => "53"} Pipelines: [:browser] 06:05:39.113 [debug] QUERY OK source="sources" db=0.3ms idle=1334.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [53] 06:05:39.114 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=1334.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" [] 06:05:39.114 [debug] QUERY OK source="settings" db=0.1ms idle=1335.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:39.115 [debug] QUERY OK source="settings" db=0.3ms idle=1336.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:39.115 [debug] QUERY OK source="settings" db=0.2ms idle=921.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:39.116 [debug] QUERY OK source="settings" db=0.2ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:39.117 [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 [] 06:05:39.120 [info] Sent 200 in 8ms 06:05:42.117 [info] {"source":"oban","duration":14425,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:05:43.959 [info] GET /sources/46/media/1865120/edit 06:05:43.959 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1865120", "source_id" => "46"} Pipelines: [:browser] 06:05:43.960 [debug] QUERY OK source="media_items" db=0.3ms idle=1181.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" = ?) [1865120] 06:05:43.960 [debug] QUERY OK source="settings" db=0.1ms idle=1181.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:43.961 [debug] QUERY OK source="settings" db=0.1ms idle=1182.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:43.961 [debug] QUERY OK source="settings" db=0.1ms idle=757.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:43.962 [info] Sent 200 in 3ms 06:05:48.960 [info] GET /sources/46/media/1865120 06:05:48.960 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1865120", "source_id" => "46"} Pipelines: [:browser] 06:05:48.961 [debug] QUERY OK source="media_items" db=0.2ms idle=1182.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" = ?) [1865120] 06:05:48.961 [debug] QUERY OK source="tasks" db=0.2ms idle=1182.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" [1865120] 06:05:48.961 [debug] QUERY OK source="sources" db=0.2ms idle=1182.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:05:48.962 [debug] QUERY OK source="settings" db=0.1ms idle=1183.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:48.962 [debug] QUERY OK source="settings" db=0.1ms 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 [] 06:05:48.963 [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 [] 06:05:48.963 [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] 06:05:48.965 [info] Sent 200 in 5ms 06:05:49.223 [info] {"args":{"id":1129422},"id":176766,"meta":{},"system_time":1772366749223779187,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":19,"tags":["media_item","media_fetching","show_in_dashboard"]} 06:05:49.224 [debug] QUERY OK source="media_items" db=0.3ms idle=261.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" = ?) [1129422] 06:05:49.224 [info] User scripts lifecyle file either not present or is empty. Skipping. 06:05:49.227 [debug] QUERY OK source="sources" db=2.0ms idle=261.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] 06:05:49.228 [debug] QUERY OK source="media_profiles" db=0.8ms idle=263.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] 06:05:49.229 [debug] QUERY OK source="media_items" db=1.0ms idle=11.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 [1129422] 06:05:49.231 [debug] QUERY OK source="media_metadata" db=0.1ms idle=7.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" = ?) [1129422] 06:05:49.231 [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] 06:05:49.232 [debug] QUERY OK source="settings" db=0.1ms 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 [] 06:05:49.232 [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 [] 06:05:49.232 [debug] Running yt-dlp command for action: get_downloadable_status 06:05:49.233 [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 [] 06:05:49.233 [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 [] 06:05:49.233 [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 [] 06:05:49.234 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=a3i4DcE8ziM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/83/97/8397090a70c2258fc9fa9f0268686d9c9c0e332d40fdf8d78a5d8ad693b01c8b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 06:05:52.076 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=a3i4DcE8ziM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/83/97/8397090a70c2258fc9fa9f0268686d9c9c0e332d40fdf8d78a5d8ad693b01c8b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] a3i4DcE8ziM: Join this channel to get access to members-only content like this video, and other exclusive perks. 06:05:52.076 [error] yt-dlp download error for media item #1129422: "ERROR: [youtube] a3i4DcE8ziM: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 06:05:52.078 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1129422},"id":176766,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2852894,"event":"job:exception","queue_time":735179,"attempt":19,"tags":["media_item","media_fetching","show_in_dashboard"]} 06:05:53.960 [info] GET /sources/53/media/1548183/edit 06:05:53.960 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1548183", "source_id" => "53"} Pipelines: [:browser] 06:05:53.961 [debug] QUERY OK source="media_items" db=0.4ms idle=1182.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" = ?) [1548183] 06:05:53.962 [debug] QUERY OK source="settings" db=0.2ms idle=1183.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:53.962 [debug] QUERY OK source="settings" db=0.1ms idle=737.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:53.963 [debug] QUERY OK source="settings" db=0.1ms idle=184.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:53.964 [info] Sent 200 in 3ms 06:05:57.566 [info] GET /sources/43/media/2342586 06:05:57.567 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2342586", "prevent_download" => "true", "source_id" => "43"} Pipelines: [:browser] 06:05:57.567 [debug] QUERY OK source="media_items" db=0.3ms idle=1788.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" = ?) [2342586] 06:05:57.568 [debug] QUERY OK source="sources" db=0.4ms idle=1789.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:05:57.569 [debug] QUERY OK source="tasks" db=0.9ms idle=1789.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" [2342586] 06:05:57.569 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=1337.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" = ?) [179560] 06:05:57.569 [debug] QUERY OK source="settings" db=0.1ms idle=336.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:57.570 [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 [] 06:05:57.570 [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 [] 06:05:57.571 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 06:05:57.573 [info] Sent 200 in 6ms 06:05:58.962 [info] GET /sources/53/media/1548181 06:05:58.962 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1548181", "source_id" => "53"} Pipelines: [:browser] 06:05:58.963 [debug] QUERY OK source="media_items" db=0.3ms idle=728.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" = ?) [1548181] 06:05:58.963 [debug] QUERY OK source="tasks" db=0.3ms idle=184.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" [1548181] 06:05:58.964 [debug] QUERY OK source="sources" db=0.3ms idle=184.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [53] 06:05:58.964 [debug] QUERY OK source="settings" db=0.1ms idle=185.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:58.964 [debug] QUERY OK source="settings" db=0.1ms idle=185.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:05:58.965 [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 [] 06:05:58.966 [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] 06:05:58.967 [info] Sent 200 in 5ms 06:06:00.165 [info] {"source":"oban","duration":289,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:06:02.416 [info] GET /sources/43/media/2358044 06:06:02.417 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2358044", "prevent_download" => "true", "source_id" => "43"} Pipelines: [:browser] 06:06:02.417 [debug] QUERY OK source="media_items" db=0.2ms queue=0.1ms idle=1638.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" = ?) [2358044] 06:06:02.418 [debug] QUERY OK source="sources" db=0.2ms idle=1177.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] 06:06:02.419 [debug] QUERY OK source="tasks" db=0.9ms idle=1639.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" [2358044] 06:06:02.419 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=640.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" = ?) [183664] 06:06:02.420 [debug] QUERY OK source="settings" db=0.1ms idle=177.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:02.420 [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 [] 06:06:02.421 [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 [] 06:06:02.421 [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] 06:06:02.423 [info] Sent 200 in 6ms 06:06:02.840 [info] GET /sources/43/media/2342586/edit 06:06:02.840 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2342586", "source_id" => "43"} Pipelines: [:browser] 06:06:02.841 [debug] QUERY OK source="media_items" db=0.4ms idle=421.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" = ?) [2342586] 06:06:02.841 [debug] QUERY OK source="settings" db=0.2ms idle=421.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:02.842 [debug] QUERY OK source="settings" db=0.1ms idle=421.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:02.843 [debug] QUERY OK source="settings" db=0.2ms idle=421.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:02.844 [info] Sent 200 in 4ms 06:06:03.962 [info] GET /sources/53/media/1548183 06:06:03.962 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1548183", "source_id" => "53"} Pipelines: [:browser] 06:06:03.963 [debug] QUERY OK source="media_items" db=0.2ms idle=1121.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" = ?) [1548183] 06:06:03.964 [debug] QUERY OK source="tasks" db=0.2ms idle=1121.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" [1548183] 06:06:03.964 [debug] QUERY OK source="sources" db=0.3ms idle=1121.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" = ?) [53] 06:06:03.964 [debug] QUERY OK source="settings" db=0.1ms idle=1121.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:03.965 [debug] QUERY OK source="settings" db=0.1ms idle=720.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:03.965 [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 [] 06:06:03.966 [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] 06:06:03.967 [info] Sent 200 in 5ms 06:06:08.966 [info] GET /sources/46/media/1823691/edit 06:06:08.966 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1823691", "source_id" => "46"} Pipelines: [:browser] 06:06:08.967 [debug] QUERY OK source="media_items" db=0.3ms idle=1188.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" = ?) [1823691] 06:06:08.967 [debug] QUERY OK source="settings" db=0.2ms idle=1189.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:08.967 [debug] QUERY OK source="settings" db=0.0ms idle=1189.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:08.968 [debug] QUERY OK source="settings" db=0.1ms idle=1189.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:08.969 [info] Sent 200 in 3ms 06:06:12.134 [info] {"source":"oban","duration":15845,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 06:06:13.968 [info] GET /sources/53/media/1550158/edit 06:06:13.968 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1550158", "source_id" => "53"} Pipelines: [:browser] 06:06:13.969 [debug] QUERY OK source="media_items" db=0.3ms idle=1190.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" = ?) [1550158] 06:06:13.969 [debug] QUERY OK source="settings" db=0.1ms idle=1190.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:13.969 [debug] QUERY OK source="settings" db=0.1ms idle=1190.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:13.970 [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 [] 06:06:13.970 [info] Sent 200 in 2ms 06:06:18.969 [info] GET /sources/46/media/1823691 06:06:18.969 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1823691", "source_id" => "46"} Pipelines: [:browser] 06:06:18.970 [debug] QUERY OK source="media_items" db=0.3ms idle=1191.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" = ?) [1823691] 06:06:18.971 [debug] QUERY OK source="tasks" db=0.1ms idle=1192.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" [1823691] 06:06:18.971 [debug] QUERY OK source="sources" db=0.2ms idle=1192.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:06:18.972 [debug] QUERY OK source="settings" db=0.2ms idle=1193.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:18.972 [debug] QUERY OK source="settings" db=0.1ms idle=698.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:18.973 [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 [] 06:06:18.974 [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] 06:06:18.976 [info] Sent 200 in 7ms 06:06:23.969 [info] GET /sources/37/media/382021 06:06:23.969 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "382021", "source_id" => "37"} Pipelines: [:browser] 06:06:23.970 [debug] QUERY OK source="media_items" db=0.3ms idle=1191.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" = ?) [382021] 06:06:23.971 [debug] QUERY OK source="sources" db=0.3ms idle=1192.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:06:23.972 [debug] QUERY OK source="tasks" db=1.1ms idle=1192.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" [382021] 06:06:23.972 [debug] QUERY OK source="oban_jobs" db=0.3ms idle=1193.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 (?,?,?)) [115892, 143259, 168197] 06:06:23.973 [debug] QUERY OK source="settings" db=0.1ms idle=690.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:23.973 [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 [] 06:06:23.974 [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 [] 06:06:23.975 [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] 06:06:23.977 [info] Sent 200 in 7ms 06:06:28.302 [info] {"args":{"id":35},"id":189069,"meta":{},"system_time":1772366788302044948,"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"]} 06:06:28.303 [debug] QUERY OK source="sources" db=1.2ms idle=523.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:06:28.304 [debug] QUERY OK source="settings" db=0.2ms idle=525.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:28.310 [debug] QUERY OK source="media_items" db=5.4ms idle=525.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] 06:06:28.310 [debug] QUERY OK source="media_items" db=0.5ms idle=15.6ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [35] 06:06:28.311 [debug] QUERY OK source="media_profiles" db=0.2ms idle=9.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] 06:06:28.312 [debug] QUERY OK source="settings" db=0.1ms 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 [] 06:06:28.312 [debug] QUERY OK source="settings" db=0.1ms 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 [] 06:06:28.317 [debug] QUERY OK source="media_items" db=4.4ms idle=2.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [35] 06:06:28.320 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 06:06:28.320 [debug] Current batch of media processed. Will check again in 1000ms 06:06:28.320 [debug] QUERY OK source="settings" db=0.1ms idle=9.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:28.320 [debug] QUERY OK source="settings" db=0.1ms idle=9.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:28.321 [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 [] 06:06:28.321 [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/b6/25/b625117ddba96be39869ba6d0e933cd67495669185e282f9ef767cd98e8f29b3.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/a5/5f/a55f15dd8d353d393dfbb3a963cb62ab4142e19f47434be8b627a9d9891b006d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 06:06:28.971 [info] GET /sources/37/media/382027/edit 06:06:28.971 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "382027", "source_id" => "37"} Pipelines: [:browser] 06:06:28.972 [debug] QUERY OK source="media_items" db=0.3ms idle=659.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" = ?) [382027] 06:06:28.972 [debug] QUERY OK source="settings" db=0.1ms idle=655.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:28.973 [debug] QUERY OK source="settings" db=0.1ms idle=652.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:28.973 [debug] QUERY OK source="settings" db=0.1ms idle=652.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:28.975 [info] Sent 200 in 4ms 06:06:29.321 [debug] Current batch of media processed. Will check again in 1000ms 06:06:30.322 [debug] Current batch of media processed. Will check again in 1000ms 06:06:31.323 [debug] Current batch of media processed. Will check again in 1000ms 06:06:32.324 [debug] Current batch of media processed. Will check again in 1000ms 06:06:33.325 [debug] Current batch of media processed. Will check again in 1000ms 06:06:33.971 [info] GET /sources/37/media/382025/edit 06:06:33.971 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "382025", "source_id" => "37"} Pipelines: [:browser] 06:06:33.972 [debug] QUERY OK source="media_items" db=0.2ms idle=1193.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" = ?) [382025] 06:06:33.972 [debug] QUERY OK source="settings" db=0.1ms idle=1194.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:33.973 [debug] QUERY OK source="settings" db=0.1ms idle=1194.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:33.973 [debug] QUERY OK source="settings" db=0.1ms idle=1195.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:33.975 [info] Sent 200 in 4ms 06:06:34.326 [debug] Current batch of media processed. Will check again in 1000ms 06:06:35.327 [debug] Current batch of media processed. Will check again in 1000ms 06:06:36.328 [debug] Current batch of media processed. Will check again in 1000ms 06:06:37.329 [debug] Current batch of media processed. Will check again in 1000ms 06:06:38.330 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "'xargs' takes the output of one command (or contents of a file), converts it into a list of arguments, and passes that list to another command to execute. \n\n- Run a command using the input data as arguments:\n command1 | xargs command2\n \n- Count lines in multiple files:\n ls *.txt | xargs wc -l\n\n- Cat a file and use the input data as an argument:\n cat file | xargs\n NOTE If no xargs command is given, xargs uses 'echo' as the command.\n\n- The same as above except it executes the command once per argument (-n 1):\n cat file | xargs -n 1\n\n- Create 10 sequential .txt files. The '-I {}' symbolizes all the input:\n seq 10 | xargs -I {} touch {}.txt\n\n- Delete files with '.log' extension found by 'find'. The -print0 in 'find' and -0 in 'xargs' use a null character as a delimiter, ensuring filenames with spaces or special characters are handled correctly.\n find . -name \"*.log\" -print0 | xargs -0 rm -f\n \n- Find and delete all backup files (.bak). The '-p' option is useful for destructive operations, as it displays the command to be executed and asks for user confirmation (y/n).\n find . -type f -name \"*.bak\" | xargs -p rm\n\n- The '-d' option sets the delimiter (spaces by default):\n ls | xargs -n 1 (Files/directories with spaces are a problem.)\n ls | xargs -n 1 -d \\n (Uses new line as delimiter and problem solved!)\n \n- xargs can print (-a) the contents of a file to stdout. We can use '-p' to prompt for 'y/n' before executing. We can use '-r' to only execute if stdin is not empty.\n xargs -a 1.txt\n xargs -p -a 1.txt\n xargs -r -p -a 1.txt\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" => 589, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022800_'xargs' - execute command lines from standard input - Video Man Pages.mp4", "id" => "tUkQcvytVtw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tUkQcvytVtw", "playlist_index" => 1, "timestamp" => 1772287290, "title" => "'xargs' - execute command lines from standard input - Video Man Pages", "upload_date" => "20260228"} 06:06:38.331 [debug] QUERY OK source="sources" db=0.3ms idle=552.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] 06:06:38.332 [debug] QUERY OK source="sources" db=0.1ms idle=553.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] 06:06:38.334 [debug] QUERY OK source="media_items" db=1.5ms queue=0.1ms idle=553.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-28 14:01:30Z], 35] 06:06:38.348 [debug] QUERY OK source="media_items" db=13.0ms idle=555.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" ["'xargs' takes the output of one command (or contents of a file), converts it into a list of arguments, and passes that list to another command to execute. \n\n- Run a command using the input data as arguments:\n command1 | xargs command2\n \n- Count lines in multiple files:\n ls *.txt | xargs wc -l\n\n- Cat a file and use the input data as an argument:\n cat file | xargs\n NOTE If no xargs command is given, xargs uses 'echo' as the command.\n\n- The same as above except it executes the command once per argument (-n 1):\n cat file | xargs -n 1\n\n- Create 10 sequential .txt files. The '-I {}' symbolizes all the input:\n seq 10 | xargs -I {} touch {}.txt\n\n- Delete files with '.log' extension found by 'find'. The -print0 in 'find' and -0 in 'xargs' use a null character as a delimiter, ensuring filenames with spaces or special characters are handled correctly.\n find . -name \"*.log\" -print0 | xargs -0 rm -f\n \n- Find and delete all backup files (.bak). The '-p' option is useful for destructive operations, as it displays the command to be executed and asks for user confirmation (y/n).\n find . -type f -name \"*.bak\" | xargs -p rm\n\n- The '-d' option sets the delimiter (spaces by default):\n ls | xargs -n 1 (Files/directories with spaces are a problem.)\n ls | xargs -n 1 -d \\n (Uses new line as delimiter and problem solved!)\n \n- xargs can print (-a) the contents of a file to stdout. We can use '-p' to prompt for 'y/n' before executing. We can use '-r' to only execute if stdin is not empty.\n xargs -a 1.txt\n xargs -p -a 1.txt\n xargs -r -p -a 1.txt\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!", "'xargs' - execute command lines from standard input - Video Man Pages", "eb9f5a82-6223-461f-8879-41f63f0ed055", "tUkQcvytVtw", 589, false, "https://www.youtube.com/watch?v=tUkQcvytVtw", 1, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022800_'xargs' - execute command lines from standard input - Video Man Pages.mp4", false, false, false, 35, [], 98, ~U[2026-02-28 14:01:30Z], ~U[2026-03-01 12:06:38Z], ~U[2026-03-01 12:06:38Z], "'xargs' takes the output of one command (or contents of a file), converts it into a list of arguments, and passes that list to another command to execute. \n\n- Run a command using the input data as arguments:\n command1 | xargs command2\n \n- Count lines in multiple files:\n ls *.txt | xargs wc -l\n\n- Cat a file and use the input data as an argument:\n cat file | xargs\n NOTE If no xargs command is given, xargs uses 'echo' as the command.\n\n- The same as above except it executes the command once per argument (-n 1):\n cat file | xargs -n 1\n\n- Create 10 sequential .txt files. The '-I {}' symbolizes all the input:\n seq 10 | xargs -I {} touch {}.txt\n\n- Delete files with '.log' extension found by 'find'. The -print0 in 'find' and -0 in 'xargs' use a null character as a delimiter, ensuring filenames with spaces or special characters are handled correctly.\n find . -name \"*.log\" -print0 | xargs -0 rm -f\n \n- Find and delete all backup files (.bak). The '-p' option is useful for destructive operations, as it displays the command to be executed and asks for user confirmation (y/n).\n find . -type f -name \"*.bak\" | xargs -p rm\n\n- The '-d' option sets the delimiter (spaces by default):\n ls | xargs -n 1 (Files/directories with spaces are a problem.)\n ls | xargs -n 1 -d \\n (Uses new line as delimiter and problem solved!)\n \n- xargs can print (-a) the contents of a file to stdout. We can use '-p' to prompt for 'y/n' before executing. We can use '-r' to only execute if stdin is not empty.\n xargs -a 1.txt\n xargs -p -a 1.txt\n xargs -r -p -a 1.txt\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!", "'xargs' - execute command lines from standard input - Video Man Pages", "tUkQcvytVtw", 589, false, "https://www.youtube.com/watch?v=tUkQcvytVtw", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022800_'xargs' - execute command lines from standard input - Video Man Pages.mp4", false, 35, ~U[2026-02-28 14:01:30Z]] 06:06:38.348 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [35] 06:06:38.349 [debug] QUERY OK source="media_profiles" db=0.3ms idle=17.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:06:38.350 [debug] QUERY OK source="media_items" db=0.4ms idle=17.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 [2375367] 06:06:38.350 [debug] Current batch of media processed. Will check again in 1000ms 06:06:38.976 [info] GET /sources/46/media/1877810/edit 06:06:38.976 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1877810", "source_id" => "46"} Pipelines: [:browser] 06:06:38.978 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=642.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" = ?) [1877810] 06:06:38.978 [debug] QUERY OK source="settings" db=0.2ms idle=631.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:38.979 [debug] QUERY OK source="settings" db=0.2ms idle=630.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:38.980 [debug] QUERY OK source="settings" db=0.2ms idle=630.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:38.982 [info] Sent 200 in 5ms 06:06:39.351 [debug] Current batch of media processed. Will check again in 1000ms 06:06:40.352 [debug] Current batch of media processed. Will check again in 1000ms 06:06:41.353 [debug] Current batch of media processed. Will check again in 1000ms 06:06:42.151 [info] {"source":"oban","duration":15897,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:06:42.354 [debug] Current batch of media processed. Will check again in 1000ms 06:06:43.355 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Ever had a computer chair or office chair that was no longer able to maintain its height? There's a few DIY fixes that involve cutting PVC pipe and using metal clamps, but if you're like me, you probably would prefer a ready-made, out-of-the-box fix. I found a cheap product that works!\n\n► https://amzn.to/3ZWguh4 - Office Chair Hero Clamps\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" => 212, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022600_Cheap Fix For Sinking Computer Chairs And Office Chairs.mp4", "id" => "I_urqL2bEX8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=I_urqL2bEX8", "playlist_index" => 2, "timestamp" => 1772114425, "title" => "Cheap Fix For Sinking Computer Chairs And Office Chairs", "upload_date" => "20260226"} 06:06:43.356 [debug] QUERY OK source="sources" db=0.3ms idle=1032.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] 06:06:43.357 [debug] QUERY OK source="sources" db=0.3ms idle=578.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:06:43.362 [debug] QUERY OK source="media_items" db=5.0ms idle=578.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 14:00:25Z], 35] 06:06:43.365 [debug] QUERY OK source="media_items" db=1.8ms idle=584.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" ["Ever had a computer chair or office chair that was no longer able to maintain its height? There's a few DIY fixes that involve cutting PVC pipe and using metal clamps, but if you're like me, you probably would prefer a ready-made, out-of-the-box fix. I found a cheap product that works!\n\n► https://amzn.to/3ZWguh4 - Office Chair Hero Clamps\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!", "Cheap Fix For Sinking Computer Chairs And Office Chairs", "89fbc024-ef92-4f41-9c05-7e00a0e295f5", "I_urqL2bEX8", 212, false, "https://www.youtube.com/watch?v=I_urqL2bEX8", 2, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022600_Cheap Fix For Sinking Computer Chairs And Office Chairs.mp4", false, false, false, 35, [], 98, ~U[2026-02-26 14:00:25Z], ~U[2026-03-01 12:06:43Z], ~U[2026-03-01 12:06:43Z], "Ever had a computer chair or office chair that was no longer able to maintain its height? There's a few DIY fixes that involve cutting PVC pipe and using metal clamps, but if you're like me, you probably would prefer a ready-made, out-of-the-box fix. I found a cheap product that works!\n\n► https://amzn.to/3ZWguh4 - Office Chair Hero Clamps\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!", "Cheap Fix For Sinking Computer Chairs And Office Chairs", "I_urqL2bEX8", 212, false, "https://www.youtube.com/watch?v=I_urqL2bEX8", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022600_Cheap Fix For Sinking Computer Chairs And Office Chairs.mp4", false, 35, ~U[2026-02-26 14:00:25Z]] 06:06:43.366 [debug] QUERY OK source="sources" db=1.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" = ?) [35] 06:06:43.367 [debug] QUERY OK source="media_profiles" db=0.2ms idle=10.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] 06:06:43.367 [debug] QUERY OK source="media_items" db=0.3ms idle=10.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 [2360144] 06:06:43.367 [debug] Current batch of media processed. Will check again in 1000ms 06:06:43.977 [info] GET /sources/37/media/382027 06:06:43.977 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "382027", "source_id" => "37"} Pipelines: [:browser] 06:06:43.979 [debug] QUERY OK source="media_items" db=1.0ms idle=615.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" = ?) [382027] 06:06:43.980 [debug] QUERY OK source="sources" db=0.2ms idle=613.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:06:43.981 [debug] QUERY OK source="tasks" db=1.3ms idle=614.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" [382027] 06:06:43.981 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=614.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 (?,?,?)) [117863, 144741, 169328] 06:06:43.982 [debug] QUERY OK source="settings" db=0.1ms idle=614.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:43.983 [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 [] 06:06:43.983 [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 [] 06:06:43.984 [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] 06:06:43.986 [info] Sent 200 in 9ms 06:06:44.368 [debug] Current batch of media processed. Will check again in 1000ms 06:06:45.369 [debug] Current batch of media processed. Will check again in 1000ms 06:06:46.370 [debug] Current batch of media processed. Will check again in 1000ms 06:06:47.371 [debug] Current batch of media processed. Will check again in 1000ms 06:06:48.372 [debug] Current batch of media processed. Will check again in 1000ms 06:06:48.978 [info] GET /sources/37/media/382025 06:06:48.978 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "382025", "source_id" => "37"} Pipelines: [:browser] 06:06:48.979 [debug] QUERY OK source="media_items" db=0.3ms idle=1200.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" = ?) [382025] 06:06:48.980 [debug] QUERY OK source="sources" db=0.2ms idle=1201.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] 06:06:48.981 [debug] QUERY OK source="tasks" db=1.1ms idle=1201.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" [382025] 06:06:48.981 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=1202.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 (?,?,?)) [116700, 144258, 168297] 06:06:48.982 [debug] QUERY OK source="settings" db=0.1ms idle=646.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:48.982 [debug] QUERY OK source="settings" db=0.1ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:48.983 [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 [] 06:06:48.984 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:06:48.986 [info] Sent 200 in 7ms 06:06:49.374 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "KaOS is an independent, built from-scratch Linux distribution, that for many years was built using KDE Plasma, but they've now dropped Plasma in favor of Niri wth the Noctalia shell.\n\nREFERENCED:\n► https://kaosx.us/\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" => 1243, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022300_KaOS Ditches KDE Plasma For Niri.mp4", "id" => "XOmc0Q_NX-o", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=XOmc0Q_NX-o", "playlist_index" => 3, "timestamp" => 1771855250, "title" => "KaOS Ditches KDE Plasma For Niri", "upload_date" => "20260223"} 06:06:49.374 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=391.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] 06:06:49.375 [debug] QUERY OK source="sources" db=0.2ms idle=392.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:06:49.381 [debug] QUERY OK source="media_items" db=5.4ms idle=392.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-23 14:00:50Z], 35] 06:06:49.384 [debug] QUERY OK source="media_items" db=1.9ms queue=0.1ms idle=397.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" ["KaOS is an independent, built from-scratch Linux distribution, that for many years was built using KDE Plasma, but they've now dropped Plasma in favor of Niri wth the Noctalia shell.\n\nREFERENCED:\n► https://kaosx.us/\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!", "KaOS Ditches KDE Plasma For Niri", "bd36b481-876b-4718-b5b8-b7727864d844", "XOmc0Q_NX-o", 1243, false, "https://www.youtube.com/watch?v=XOmc0Q_NX-o", 3, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022300_KaOS Ditches KDE Plasma For Niri.mp4", false, false, false, 35, [], 98, ~U[2026-02-23 14:00:50Z], ~U[2026-03-01 12:06:49Z], ~U[2026-03-01 12:06:49Z], "KaOS is an independent, built from-scratch Linux distribution, that for many years was built using KDE Plasma, but they've now dropped Plasma in favor of Niri wth the Noctalia shell.\n\nREFERENCED:\n► https://kaosx.us/\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!", "KaOS Ditches KDE Plasma For Niri", "XOmc0Q_NX-o", 1243, false, "https://www.youtube.com/watch?v=XOmc0Q_NX-o", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022300_KaOS Ditches KDE Plasma For Niri.mp4", false, 35, ~U[2026-02-23 14:00:50Z]] 06:06:49.384 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [35] 06:06:49.385 [debug] QUERY OK source="media_profiles" db=0.3ms idle=10.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] 06:06:49.386 [debug] QUERY OK source="media_items" db=0.3ms idle=10.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 [2336368] 06:06:49.386 [debug] Current batch of media processed. Will check again in 1000ms 06:06:50.387 [debug] Current batch of media processed. Will check again in 1000ms 06:06:51.388 [debug] Current batch of media processed. Will check again in 1000ms 06:06:52.352 [info] {"args":{"id":52},"id":189158,"meta":{},"system_time":1772366812351985812,"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"]} 06:06:52.352 [debug] QUERY OK source="sources" db=0.3ms idle=1573.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:06:52.353 [debug] QUERY OK source="settings" db=0.3ms idle=1574.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:52.354 [debug] QUERY OK source="media_profiles" db=0.3ms idle=1011.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] 06:06:52.354 [debug] QUERY OK source="settings" db=0.3ms idle=9.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:52.354 [debug] Fetching recent media IDs from YouTube RSS feed for source: UC9H0HzpKf5JlazkADWnW1Jw 06:06:52.389 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The 'pacman' package manager is one of the major distinguishing features of Arch Linux, but it does have issues on occasion, such as becoming really slow when installing software or updating the system. But these issues are easily fixed.\n\nREFERENCED:\n► https://wiki.archlinux.org/title/Pacman\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" => 371, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022000_Pacman Slow In Arch Linux? Here's The Fix!.mp4", "id" => "KcHcQHl8U8k", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=KcHcQHl8U8k", "playlist_index" => 4, "timestamp" => 1771596027, "title" => "Pacman Slow In Arch Linux? Here's The Fix!", "upload_date" => "20260220"} 06:06:52.390 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [35] 06:06:52.391 [debug] QUERY OK source="sources" db=0.4ms idle=38.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:06:52.397 [debug] QUERY OK source="media_items" db=5.8ms idle=38.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-20 14:00:27Z], 35] 06:06:52.400 [debug] QUERY OK source="media_items" db=2.0ms idle=44.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 'pacman' package manager is one of the major distinguishing features of Arch Linux, but it does have issues on occasion, such as becoming really slow when installing software or updating the system. But these issues are easily fixed.\n\nREFERENCED:\n► https://wiki.archlinux.org/title/Pacman\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!", "Pacman Slow In Arch Linux? Here's The Fix!", "02fbe4ee-da64-4a00-aa29-803d43de0e26", "KcHcQHl8U8k", 371, false, "https://www.youtube.com/watch?v=KcHcQHl8U8k", 4, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022000_Pacman Slow In Arch Linux? Here's The Fix!.mp4", false, false, false, 35, [], 98, ~U[2026-02-20 14:00:27Z], ~U[2026-03-01 12:06:52Z], ~U[2026-03-01 12:06:52Z], "The 'pacman' package manager is one of the major distinguishing features of Arch Linux, but it does have issues on occasion, such as becoming really slow when installing software or updating the system. But these issues are easily fixed.\n\nREFERENCED:\n► https://wiki.archlinux.org/title/Pacman\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!", "Pacman Slow In Arch Linux? Here's The Fix!", "KcHcQHl8U8k", 371, false, "https://www.youtube.com/watch?v=KcHcQHl8U8k", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022000_Pacman Slow In Arch Linux? Here's The Fix!.mp4", false, 35, ~U[2026-02-20 14:00:27Z]] 06:06:52.401 [debug] QUERY OK source="sources" db=0.4ms idle=46.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:06:52.401 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 06:06:52.402 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=10.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 [2312860] 06:06:52.403 [debug] Current batch of media processed. Will check again in 1000ms 06:06:52.717 [debug] Media ids fetched from RSS: ["AmqmI9SxdNc", "QwSDD2rvrbg", "M5fh85WVkPU", "AJGwm6P_f_8", "mfWhlH-5ooY", "eMl7jhLvHOQ", "GYBOJiYvtbI", "zMSL-kTF8LE", "lf9pprK5gg8", "WP69p26qNZY", "OuvUK9ZdjPs", "CA-0MvrvWAU", "-80I7UZL3hk", "hJ3wG8PVhPw", "HzeBu2mVff4"] 06:06:52.719 [debug] QUERY OK source="media_items" db=1.6ms idle=320.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, "AmqmI9SxdNc", "QwSDD2rvrbg", "M5fh85WVkPU", "AJGwm6P_f_8", "mfWhlH-5ooY", "eMl7jhLvHOQ", "GYBOJiYvtbI", "zMSL-kTF8LE", "lf9pprK5gg8", "WP69p26qNZY", "OuvUK9ZdjPs", "CA-0MvrvWAU", "-80I7UZL3hk", "hJ3wG8PVhPw", "HzeBu2mVff4"] 06:06:52.721 [debug] QUERY OK source="media_items" db=1.1ms idle=320.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] 06:06:52.727 [debug] QUERY OK source="tasks" db=0.5ms idle=324.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189167, 1301334, ~U[2026-03-01 12:06:52Z], ~U[2026-03-01 12:06:52Z]] 06:06:52.733 [debug] QUERY OK source="tasks" db=1.5ms idle=6.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189168, 1301335, ~U[2026-03-01 12:06:52Z], ~U[2026-03-01 12:06:52Z]] 06:06:52.735 [info] {"args":{"id":1301334},"id":189167,"meta":{},"system_time":1772366812734966082,"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"]} 06:06:52.735 [info] {"args":{"id":1301335},"id":189168,"meta":{},"system_time":1772366812735059696,"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"]} 06:06:52.737 [debug] QUERY OK source="media_items" db=1.4ms 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."id" = ?) [1301335] 06:06:52.737 [debug] QUERY OK source="media_items" db=1.9ms idle=3.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1301334] 06:06:52.737 [info] User scripts lifecyle file either not present or is empty. Skipping. 06:06:52.737 [info] User scripts lifecyle file either not present or is empty. Skipping. 06:06:52.739 [debug] QUERY OK source="sources" db=1.5ms queue=0.1ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 06:06:52.739 [debug] QUERY OK source="sources" db=1.8ms 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" = ?) [52] 06:06:52.740 [debug] QUERY OK source="media_profiles" db=0.9ms queue=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] 06:06:52.741 [debug] QUERY OK source="media_profiles" db=1.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] 06:06:52.742 [debug] QUERY OK source="media_items" db=1.5ms 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 [1301335] 06:06:52.743 [debug] QUERY OK source="media_items" db=1.7ms 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 [1301334] 06:06:52.745 [debug] QUERY OK source="tasks" db=0.5ms idle=3.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189169, 1301347, ~U[2026-03-01 12:06:52Z], ~U[2026-03-01 12:06:52Z]] 06:06:52.747 [debug] QUERY OK source="media_metadata" db=0.5ms 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" = ?) [1301334] 06:06:52.748 [debug] QUERY OK source="media_metadata" db=0.7ms 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" = ?) [1301335] 06:06:52.749 [debug] QUERY OK source="media_profiles" db=1.2ms 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] 06:06:52.749 [debug] QUERY OK source="media_profiles" db=1.1ms queue=0.2ms idle=2.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:06:52.750 [debug] QUERY OK source="settings" db=0.7ms 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 [] 06:06:52.751 [debug] QUERY OK source="settings" db=0.8ms 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 [] 06:06:52.751 [debug] QUERY OK source="settings" db=0.7ms 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 [] 06:06:52.751 [debug] QUERY OK source="settings" db=0.6ms 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 [] 06:06:52.751 [debug] Running yt-dlp command for action: get_downloadable_status 06:06:52.754 [debug] Running yt-dlp command for action: get_downloadable_status 06:06:52.754 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:52.755 [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 [] 06:06:52.756 [debug] QUERY OK source="tasks" db=1.5ms idle=3.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189170, 1301392, ~U[2026-03-01 12:06:52Z], ~U[2026-03-01 12:06:52Z]] 06:06:52.756 [debug] QUERY OK source="settings" db=0.5ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:52.756 [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/cd/31/cd312a7533bb44855856d5f76aa2beec792fad4fa06a769453983f6c0f42a6ab.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 06:06:52.757 [debug] QUERY OK source="settings" db=0.6ms 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 [] 06:06:52.757 [debug] QUERY OK source="settings" db=0.4ms 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 [] 06:06:52.758 [debug] QUERY OK source="settings" db=0.6ms 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 [] 06:06:52.758 [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/70/23/7023e70ea4e96a176093607a923b588b1a869a922f078c61129c4cfefcd20067.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 06:06:52.762 [debug] QUERY OK source="tasks" db=0.4ms idle=5.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189171, 1301393, ~U[2026-03-01 12:06:52Z], ~U[2026-03-01 12:06:52Z]] 06:06:52.768 [debug] QUERY OK source="tasks" db=0.6ms idle=6.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189172, 1301394, ~U[2026-03-01 12:06:52Z], ~U[2026-03-01 12:06:52Z]] 06:06:52.806 [debug] QUERY OK source="tasks" db=4.6ms idle=35.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189173, 1301395, ~U[2026-03-01 12:06:52Z], ~U[2026-03-01 12:06:52Z]] 06:06:52.815 [debug] QUERY OK source="tasks" db=0.6ms idle=12.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189174, 1301397, ~U[2026-03-01 12:06:52Z], ~U[2026-03-01 12:06:52Z]] 06:06:52.821 [debug] QUERY OK source="tasks" db=0.7ms idle=7.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189175, 1301398, ~U[2026-03-01 12:06:52Z], ~U[2026-03-01 12:06:52Z]] 06:06:52.827 [debug] QUERY OK source="tasks" db=0.7ms idle=6.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189176, 1301399, ~U[2026-03-01 12:06:52Z], ~U[2026-03-01 12:06:52Z]] 06:06:52.833 [debug] QUERY OK source="tasks" db=0.7ms idle=6.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189177, 1301400, ~U[2026-03-01 12:06:52Z], ~U[2026-03-01 12:06:52Z]] 06:06:52.836 [debug] QUERY OK source="tasks" db=0.7ms idle=4.1ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189178, 52, ~U[2026-03-01 12:06:52Z], ~U[2026-03-01 12:06:52Z]] 06:06:52.837 [info] {"args":{"id":52},"id":189158,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":484540,"event":"job:stop","queue_time":198076,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 06:06:53.403 [debug] Current batch of media processed. Will check again in 1000ms 06:06:53.979 [info] GET /sources/37/media/382023/edit 06:06:53.979 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "382023", "source_id" => "37"} Pipelines: [:browser] 06:06:53.981 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=1144.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" = ?) [382023] 06:06:53.982 [debug] QUERY OK source="settings" db=0.5ms idle=1145.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:53.983 [debug] QUERY OK source="settings" db=0.3ms idle=1145.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:53.984 [debug] QUERY OK source="settings" db=0.2ms idle=1139.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:53.986 [info] Sent 200 in 6ms 06:06:54.404 [debug] Current batch of media processed. Will check again in 1000ms 06:06:55.405 [debug] Current batch of media processed. Will check again in 1000ms 06:06:56.406 [debug] Current batch of media processed. Will check again in 1000ms 06:06:56.739 [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/cd/31/cd312a7533bb44855856d5f76aa2beec792fad4fa06a769453983f6c0f42a6ab.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. 06:06:56.739 [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" 06:06:56.739 [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" 06:06:56.741 [info] {"args":{"id":1301334},"id":189167,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4005129,"event":"job:stop","queue_time":732350,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 06:06:56.750 [info] {"args":{"id":1301347},"id":189169,"meta":{},"system_time":1772366816749982791,"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"]} 06:06:56.751 [debug] QUERY OK source="media_items" db=0.7ms idle=972.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" = ?) [1301347] 06:06:56.751 [info] User scripts lifecyle file either not present or is empty. Skipping. 06:06:56.753 [debug] QUERY OK source="sources" db=0.7ms idle=973.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:06:56.754 [debug] QUERY OK source="media_profiles" db=0.6ms idle=396.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] 06:06:56.756 [debug] QUERY OK source="media_items" db=0.9ms 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 [1301347] 06:06:56.758 [debug] QUERY OK source="media_metadata" db=0.2ms queue=0.1ms idle=8.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] 06:06:56.759 [debug] QUERY OK source="media_profiles" db=0.3ms queue=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] 06:06:56.760 [debug] QUERY OK source="settings" db=0.3ms 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 [] 06:06:56.761 [debug] QUERY OK source="settings" db=0.2ms queue=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 [] 06:06:56.762 [debug] Running yt-dlp command for action: get_downloadable_status 06:06:56.765 [debug] QUERY OK source="settings" db=0.2ms idle=9.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:56.766 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms 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 [] 06:06:56.767 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=7.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:56.767 [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/06/f9/06f970f2fad30a3613e9c6083689bab983d0692461a645c9288b458ec2b0321b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 06:06:56.897 [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/70/23/7023e70ea4e96a176093607a923b588b1a869a922f078c61129c4cfefcd20067.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. 06:06:56.897 [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" 06:06:56.898 [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" 06:06:56.899 [info] {"args":{"id":1301335},"id":189168,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4163332,"event":"job:stop","queue_time":732350,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 06:06:56.908 [info] {"args":{"id":1301392},"id":189170,"meta":{},"system_time":1772366816907993585,"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"]} 06:06:56.909 [debug] QUERY OK source="media_items" db=0.7ms idle=142.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] 06:06:56.909 [info] User scripts lifecyle file either not present or is empty. Skipping. 06:06:56.910 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=143.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] 06:06:56.911 [debug] QUERY OK source="media_profiles" db=0.7ms idle=143.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] 06:06:56.913 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=12.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] 06:06:56.916 [debug] QUERY OK source="media_metadata" db=0.3ms idle=8.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] 06:06:56.917 [debug] QUERY OK source="media_profiles" db=0.5ms 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] 06:06:56.919 [debug] QUERY OK source="settings" db=0.6ms 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 [] 06:06:56.919 [debug] QUERY OK source="settings" db=0.3ms 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 [] 06:06:56.920 [debug] Running yt-dlp command for action: get_downloadable_status 06:06:56.922 [debug] QUERY OK source="settings" db=0.3ms idle=8.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:56.923 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms 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 [] 06:06:56.923 [debug] QUERY OK source="settings" db=0.3ms 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 [] 06:06:56.924 [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/3d/f1/3df132d0881ee107b06e3768e5007f5498bf2d56f6d8e5d5dae1977b18ec5a28.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 06:06:57.407 [debug] Current batch of media processed. Will check again in 1000ms 06:06:58.408 [debug] Current batch of media processed. Will check again in 1000ms 06:06:58.980 [info] GET /sources/46/media/1877810 06:06:58.981 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1877810", "source_id" => "46"} Pipelines: [:browser] 06:06:58.982 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=619.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" = ?) [1877810] 06:06:58.984 [debug] QUERY OK source="tasks" db=0.6ms queue=0.1ms idle=204.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" [1877810] 06:06:58.984 [debug] QUERY OK source="sources" db=1.0ms idle=204.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] 06:06:58.986 [debug] QUERY OK source="settings" db=0.5ms idle=206.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:58.986 [debug] QUERY OK source="settings" db=0.4ms idle=207.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:06:58.988 [debug] QUERY OK source="settings" db=0.3ms 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 [] 06:06:58.990 [debug] QUERY OK source="media_profiles" db=0.6ms 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] 06:06:58.993 [info] Sent 200 in 12ms 06:06:59.410 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, I'm taking a look at the latest release of iDeal OS, based on MX Linux 25.1 and Debian 13.3 Trixie, with KDE Plasma 6 desktop environment.\n\nREFERENCED:\n► https://ideal-os.xyz/\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" => 1457, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e021600_A Quick First Look AT iDeal OS.mp4", "id" => "7HW1c-_mrrg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=7HW1c-_mrrg", "playlist_index" => 5, "timestamp" => 1771250411, "title" => "A Quick First Look AT iDeal OS", "upload_date" => "20260216"} 06:06:59.411 [debug] QUERY OK source="sources" db=0.6ms idle=424.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 06:06:59.412 [debug] QUERY OK source="sources" db=0.5ms idle=424.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] 06:06:59.423 [debug] QUERY OK source="media_items" db=10.1ms queue=0.1ms 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-16 14:00:11Z], 35] 06:06:59.427 [debug] QUERY OK source="media_items" db=3.2ms idle=433.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" ["Today, I'm taking a look at the latest release of iDeal OS, based on MX Linux 25.1 and Debian 13.3 Trixie, with KDE Plasma 6 desktop environment.\n\nREFERENCED:\n► https://ideal-os.xyz/\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 First Look AT iDeal OS", "717e81c9-3e95-4694-9cc2-a021a953c481", "7HW1c-_mrrg", 1457, false, "https://www.youtube.com/watch?v=7HW1c-_mrrg", 5, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e021600_A Quick First Look AT iDeal OS.mp4", false, false, false, 35, [], 98, ~U[2026-02-16 14:00:11Z], ~U[2026-03-01 12:06:59Z], ~U[2026-03-01 12:06:59Z], "Today, I'm taking a look at the latest release of iDeal OS, based on MX Linux 25.1 and Debian 13.3 Trixie, with KDE Plasma 6 desktop environment.\n\nREFERENCED:\n► https://ideal-os.xyz/\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 First Look AT iDeal OS", "7HW1c-_mrrg", 1457, false, "https://www.youtube.com/watch?v=7HW1c-_mrrg", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e021600_A Quick First Look AT iDeal OS.mp4", false, 35, ~U[2026-02-16 14:00:11Z]] 06:06:59.429 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=62.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:06:59.430 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.1ms idle=18.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] 06:06:59.432 [debug] QUERY OK source="media_items" db=0.8ms idle=18.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 [2281781] 06:06:59.432 [debug] Current batch of media processed. Will check again in 1000ms 06:07:00.166 [info] {"source":"oban","duration":365,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:07:00.433 [debug] Current batch of media processed. Will check again in 1000ms 06:07:00.884 [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/06/f9/06f970f2fad30a3613e9c6083689bab983d0692461a645c9288b458ec2b0321b.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. 06:07:00.884 [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" 06:07:00.885 [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" 06:07:00.887 [info] {"args":{"id":1301347},"id":189169,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4135201,"event":"job:stop","queue_time":4747404,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 06:07:00.895 [info] {"args":{"id":1301393},"id":189171,"meta":{},"system_time":1772366820895372236,"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"]} 06:07:00.896 [debug] QUERY OK source="media_items" db=0.6ms idle=117.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] 06:07:00.897 [info] User scripts lifecyle file either not present or is empty. Skipping. 06:07:00.898 [debug] QUERY OK source="sources" db=0.6ms idle=118.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:07:00.898 [debug] QUERY OK source="media_profiles" db=0.4ms idle=119.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] 06:07:00.900 [debug] QUERY OK source="media_items" db=0.8ms idle=12.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] 06:07:00.901 [debug] QUERY OK source="media_metadata" db=0.2ms idle=5.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" = ?) [1301393] 06:07:00.902 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 06:07:00.903 [debug] QUERY OK source="settings" db=0.3ms 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 [] 06:07:00.903 [debug] QUERY OK source="settings" db=0.2ms 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 [] 06:07:00.904 [debug] Running yt-dlp command for action: get_downloadable_status 06:07:00.905 [debug] QUERY OK source="settings" db=0.2ms 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 [] 06:07:00.905 [debug] QUERY OK source="settings" db=0.3ms 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 [] 06:07:00.906 [debug] QUERY OK source="settings" db=0.3ms 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 [] 06:07:00.906 [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/ad/51/ad51ca353b2547eafec265f76ca014b42a643d3a8a1660cb41b71a9b84783a7e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 06:07:01.209 [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/3d/f1/3df132d0881ee107b06e3768e5007f5498bf2d56f6d8e5d5dae1977b18ec5a28.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. 06:07:01.210 [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" 06:07:01.210 [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" 06:07:01.212 [info] {"args":{"id":1301392},"id":189170,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4302793,"event":"job:stop","queue_time":4906396,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 06:07:01.221 [info] {"args":{"id":1301394},"id":189172,"meta":{},"system_time":1772366821221007714,"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"]} 06:07:01.222 [debug] QUERY OK source="media_items" db=0.6ms idle=316.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" = ?) [1301394] 06:07:01.222 [info] User scripts lifecyle file either not present or is empty. Skipping. 06:07:01.224 [debug] QUERY OK source="sources" db=0.6ms idle=317.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:07:01.225 [debug] QUERY OK source="media_profiles" db=0.5ms idle=317.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] 06:07:01.226 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=13.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] 06:07:01.229 [debug] QUERY OK source="media_metadata" db=0.2ms idle=7.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" = ?) [1301394] 06:07:01.229 [debug] QUERY OK source="media_profiles" db=0.3ms queue=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] 06:07:01.231 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms 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 [] 06:07:01.231 [debug] QUERY OK source="settings" db=0.2ms 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 [] 06:07:01.232 [debug] Running yt-dlp command for action: get_downloadable_status 06:07:01.234 [debug] QUERY OK source="settings" db=0.2ms 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 [] 06:07:01.234 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms 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 [] 06:07:01.235 [debug] QUERY OK source="settings" db=0.3ms 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 [] 06:07:01.236 [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/c2/87/c28742577303f1f9d6211a3e8d34ac0de9835f0e2145ccb7d15adbc6c7bb3615.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 06:07:01.434 [debug] Current batch of media processed. Will check again in 1000ms 06:07:02.435 [debug] Current batch of media processed. Will check again in 1000ms 06:07:03.436 [debug] Current batch of media processed. Will check again in 1000ms 06:07:04.437 [debug] Current batch of media processed. Will check again in 1000ms 06:07:05.417 [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/ad/51/ad51ca353b2547eafec265f76ca014b42a643d3a8a1660cb41b71a9b84783a7e.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. 06:07:05.417 [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" 06:07:05.418 [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" 06:07:05.418 [info] {"args":{"id":1301393},"id":189171,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4522896,"event":"job:stop","queue_time":8893388,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 06:07:05.425 [info] {"args":{"id":1301395},"id":189173,"meta":{},"system_time":1772366825425786184,"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"]} 06:07:05.426 [debug] QUERY OK source="media_items" db=0.3ms idle=647.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] 06:07:05.426 [info] User scripts lifecyle file either not present or is empty. Skipping. 06:07:05.427 [debug] QUERY OK source="sources" db=0.3ms idle=648.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:07:05.428 [debug] QUERY OK source="media_profiles" db=0.3ms idle=43.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] 06:07:05.428 [debug] QUERY OK source="media_items" db=0.4ms idle=9.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1301395] 06:07:05.430 [debug] QUERY OK source="media_metadata" db=0.1ms idle=4.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" = ?) [1301395] 06:07:05.430 [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] 06:07:05.431 [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 [] 06:07:05.431 [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 [] 06:07:05.432 [debug] Running yt-dlp command for action: get_downloadable_status 06:07:05.432 [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 [] 06:07:05.433 [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 [] 06:07:05.433 [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 [] 06:07:05.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/0d/a6/0da67c4aa99f967accb7eebff5d81405419ff5c36112b5046239a08d0f516974.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 06:07:05.438 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "On this episode of Hey DT:\n\n0:00 Intro\n0:18 What do you think about Niri?\n3:00 I know that you're not bald, but why are you wider now?\n5:41 How do I properly erase everything on my SSD? Complete wipe.\n7:43 Are you really editing videos in one take?\n9:25 It's been 5 years since your last Guix video.\n11:52 Do you have any footage of you using it (Kensington Orbit Trackball)?\n12:44 Why don't you mount your /home separately? Like from a btrfs subvolume?\n14:55 Don't you think you make linux more complicated and elitist?\n23:44 Thanks to Patrons\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" => 1500, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e021300_Hey, DT! You're Not Bald...But You Are Wide! (Plus Other Comments).mp4", "id" => "uGJ1Nao0E1Q", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=uGJ1Nao0E1Q", "playlist_index" => 6, "timestamp" => 1770991286, "title" => "Hey, DT! You're Not Bald...But You Are Wide! (Plus Other Comments)", "upload_date" => "20260213"} 06:07:05.439 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=7.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [35] 06:07:05.440 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [35] 06:07:05.445 [debug] QUERY OK source="media_items" db=5.5ms 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-02-13 14:01:26Z], 35] 06:07:05.449 [debug] QUERY OK source="media_items" db=2.2ms idle=13.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" ["On this episode of Hey DT:\n\n0:00 Intro\n0:18 What do you think about Niri?\n3:00 I know that you're not bald, but why are you wider now?\n5:41 How do I properly erase everything on my SSD? Complete wipe.\n7:43 Are you really editing videos in one take?\n9:25 It's been 5 years since your last Guix video.\n11:52 Do you have any footage of you using it (Kensington Orbit Trackball)?\n12:44 Why don't you mount your /home separately? Like from a btrfs subvolume?\n14:55 Don't you think you make linux more complicated and elitist?\n23:44 Thanks to Patrons\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!", "Hey, DT! You're Not Bald...But You Are Wide! (Plus Other Comments)", "585a1e47-abd7-4fef-9562-bd13a01b2698", "uGJ1Nao0E1Q", 1500, false, "https://www.youtube.com/watch?v=uGJ1Nao0E1Q", 6, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e021300_Hey, DT! You're Not Bald...But You Are Wide! (Plus Other Comments).mp4", false, false, false, 35, [], 98, ~U[2026-02-13 14:01:26Z], ~U[2026-03-01 12:07:05Z], ~U[2026-03-01 12:07:05Z], "On this episode of Hey DT:\n\n0:00 Intro\n0:18 What do you think about Niri?\n3:00 I know that you're not bald, but why are you wider now?\n5:41 How do I properly erase everything on my SSD? Complete wipe.\n7:43 Are you really editing videos in one take?\n9:25 It's been 5 years since your last Guix video.\n11:52 Do you have any footage of you using it (Kensington Orbit Trackball)?\n12:44 Why don't you mount your /home separately? Like from a btrfs subvolume?\n14:55 Don't you think you make linux more complicated and elitist?\n23:44 Thanks to Patrons\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!", "Hey, DT! You're Not Bald...But You Are Wide! (Plus Other Comments)", "uGJ1Nao0E1Q", 1500, false, "https://www.youtube.com/watch?v=uGJ1Nao0E1Q", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e021300_Hey, DT! You're Not Bald...But You Are Wide! (Plus Other Comments).mp4", false, 35, ~U[2026-02-13 14:01:26Z]] 06:07:05.449 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=15.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:07:05.450 [debug] QUERY OK source="media_profiles" db=0.3ms idle=10.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] 06:07:05.451 [debug] QUERY OK source="media_items" db=0.4ms 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 [2258397] 06:07:05.451 [debug] Current batch of media processed. Will check again in 1000ms 06:07:05.765 [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/c2/87/c28742577303f1f9d6211a3e8d34ac0de9835f0e2145ccb7d15adbc6c7bb3615.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. 06:07:05.766 [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" 06:07:05.766 [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" 06:07:05.768 [info] {"args":{"id":1301394},"id":189172,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4545959,"event":"job:stop","queue_time":9218418,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 06:07:05.776 [info] {"args":{"id":1301397},"id":189174,"meta":{},"system_time":1772366825776044976,"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"]} 06:07:05.777 [debug] QUERY OK source="media_items" db=0.4ms idle=326.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] 06:07:05.777 [info] User scripts lifecyle file either not present or is empty. Skipping. 06:07:05.778 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=327.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:07:05.778 [debug] QUERY OK source="media_profiles" db=0.4ms idle=326.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] 06:07:05.780 [debug] QUERY OK source="media_items" db=0.6ms idle=10.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] 06:07:05.781 [debug] QUERY OK source="media_metadata" db=0.2ms idle=5.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] 06:07:05.782 [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] 06:07:05.782 [debug] QUERY OK source="settings" db=0.2ms 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 [] 06:07:05.783 [debug] QUERY OK source="settings" db=0.2ms 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 [] 06:07:05.783 [debug] Running yt-dlp command for action: get_downloadable_status 06:07:05.784 [debug] QUERY OK source="settings" db=0.2ms 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 [] 06:07:05.785 [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 [] 06:07:05.785 [debug] QUERY OK source="settings" db=0.2ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:07:05.785 [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/2f/75/2f7526424937870e64a0f0e3a40778acc2ea0ec24c74b800762ec1dbd3f65450.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 06:07:06.452 [debug] Current batch of media processed. Will check again in 1000ms 06:07:07.453 [debug] Current batch of media processed. Will check again in 1000ms 06:07:08.454 [debug] Current batch of media processed. Will check again in 1000ms 06:07:09.455 [debug] Current batch of media processed. Will check again in 1000ms 06:07:10.041 [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/0d/a6/0da67c4aa99f967accb7eebff5d81405419ff5c36112b5046239a08d0f516974.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. 06:07:10.041 [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" 06:07:10.042 [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" 06:07:10.043 [info] {"args":{"id":1301395},"id":189173,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4616539,"event":"job:stop","queue_time":13424420,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 06:07:10.051 [info] {"args":{"id":1301398},"id":189175,"meta":{},"system_time":1772366830051021152,"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"]} 06:07:10.052 [debug] QUERY OK source="media_items" db=0.5ms idle=272.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] 06:07:10.052 [info] User scripts lifecyle file either not present or is empty. Skipping. 06:07:10.053 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=273.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] 06:07:10.054 [debug] QUERY OK source="media_profiles" db=0.4ms idle=274.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] 06:07:10.055 [debug] QUERY OK source="media_items" db=0.7ms idle=11.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] 06:07:10.056 [debug] QUERY OK source="media_metadata" db=0.1ms idle=5.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" = ?) [1301398] 06:07:10.057 [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] 06:07:10.058 [debug] QUERY OK source="settings" db=0.3ms 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 [] 06:07:10.058 [debug] QUERY OK source="settings" db=0.2ms 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 [] 06:07:10.059 [debug] Running yt-dlp command for action: get_downloadable_status 06:07:10.060 [debug] QUERY OK source="settings" db=0.1ms 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 [] 06:07:10.061 [debug] QUERY OK source="settings" db=0.2ms 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 [] 06:07:10.062 [debug] QUERY OK source="settings" db=0.2ms 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 [] 06:07:10.062 [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/39/dd/39dd2ca3b6a0c7a2291c945c680e788e912d10c5f41bad18529b3831bf4012e1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 06:07:10.323 [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/2f/75/2f7526424937870e64a0f0e3a40778acc2ea0ec24c74b800762ec1dbd3f65450.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. 06:07:10.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" 06:07:10.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" 06:07:10.324 [info] {"args":{"id":1301397},"id":189174,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4547855,"event":"job:stop","queue_time":13774352,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 06:07:10.332 [info] {"args":{"id":1301399},"id":189176,"meta":{},"system_time":1772366830332193629,"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"]} 06:07:10.333 [debug] QUERY OK source="media_items" db=0.6ms idle=271.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] 06:07:10.334 [info] User scripts lifecyle file either not present or is empty. Skipping. 06:07:10.335 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=272.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] 06:07:10.336 [debug] QUERY OK source="media_profiles" db=0.6ms idle=273.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] 06:07:10.338 [debug] QUERY OK source="media_items" db=0.8ms idle=12.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] 06:07:10.340 [debug] QUERY OK source="media_metadata" db=0.3ms idle=7.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" = ?) [1301399] 06:07:10.341 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 06:07:10.342 [debug] QUERY OK source="settings" db=0.2ms 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 [] 06:07:10.342 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms 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 [] 06:07:10.343 [debug] Running yt-dlp command for action: get_downloadable_status 06:07:10.345 [debug] QUERY OK source="settings" db=0.2ms 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 [] 06:07:10.345 [debug] QUERY OK source="settings" db=0.2ms 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 [] 06:07:10.346 [debug] QUERY OK source="settings" db=0.3ms 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 [] 06:07:10.347 [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/a8/18/a8185a987b564b6b2437354b73c3a93702fd1d01af6ead4b0e679a861caed650.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 06:07:10.456 [debug] Current batch of media processed. Will check again in 1000ms 06:07:11.457 [debug] Current batch of media processed. Will check again in 1000ms 06:07:12.180 [info] {"source":"oban","duration":27709,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:07:12.458 [debug] Current batch of media processed. Will check again in 1000ms 06:07:13.459 [debug] Current batch of media processed. Will check again in 1000ms 06:07:14.460 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "How to install Arch Linux via the command line installation process. I will use UEFI, btrfs, zram, and install a popular Wayland compositor (niri). \n\nNOTE:\nThis video was re-uploaded in order to correct a major mistake (by omission) made in the first version of this video. I did not run the command to create the 'fstab' file. Oops! The solution is to make the /mnt/etc directory (mkdir -p /mnt/etc) and then run the 'gensftab' command (full command in the pinned comment below).\n\nREFERENCED:\n► https://wiki.archlinux.org/title/Installation_guide\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" => 1439, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e021000_An Arch Linux Installation Guide (2026).mp4", "id" => "BUYFe5ejxfo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=BUYFe5ejxfo", "playlist_index" => 7, "timestamp" => 1770741047, "title" => "An Arch Linux Installation Guide (2026)", "upload_date" => "20260210"} 06:07:14.461 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=682.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 06:07:14.462 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=683.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:07:14.470 [debug] QUERY OK source="media_items" db=6.9ms idle=684.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-10 16:30:47Z], 35] 06:07:14.473 [debug] QUERY OK source="media_items" db=2.2ms idle=692.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" ["How to install Arch Linux via the command line installation process. I will use UEFI, btrfs, zram, and install a popular Wayland compositor (niri). \n\nNOTE:\nThis video was re-uploaded in order to correct a major mistake (by omission) made in the first version of this video. I did not run the command to create the 'fstab' file. Oops! The solution is to make the /mnt/etc directory (mkdir -p /mnt/etc) and then run the 'gensftab' command (full command in the pinned comment below).\n\nREFERENCED:\n► https://wiki.archlinux.org/title/Installation_guide\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!", "An Arch Linux Installation Guide (2026)", "034af0c1-3e2a-4f0d-b4a3-1814c8a5a10f", "BUYFe5ejxfo", 1439, false, "https://www.youtube.com/watch?v=BUYFe5ejxfo", 7, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e021000_An Arch Linux Installation Guide (2026).mp4", false, false, false, 35, [], 98, ~U[2026-02-10 16:30:47Z], ~U[2026-03-01 12:07:14Z], ~U[2026-03-01 12:07:14Z], "How to install Arch Linux via the command line installation process. I will use UEFI, btrfs, zram, and install a popular Wayland compositor (niri). \n\nNOTE:\nThis video was re-uploaded in order to correct a major mistake (by omission) made in the first version of this video. I did not run the command to create the 'fstab' file. Oops! The solution is to make the /mnt/etc directory (mkdir -p /mnt/etc) and then run the 'gensftab' command (full command in the pinned comment below).\n\nREFERENCED:\n► https://wiki.archlinux.org/title/Installation_guide\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!", "An Arch Linux Installation Guide (2026)", "BUYFe5ejxfo", 1439, false, "https://www.youtube.com/watch?v=BUYFe5ejxfo", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e021000_An Arch Linux Installation Guide (2026).mp4", false, 35, ~U[2026-02-10 16:30:47Z]] 06:07:14.474 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=61.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] 06:07:14.475 [debug] QUERY OK source="media_profiles" db=0.3ms idle=12.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] 06:07:14.476 [debug] QUERY OK source="media_items" db=0.5ms idle=12.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 [2235720] 06:07:14.476 [debug] Current batch of media processed. Will check again in 1000ms 06:07:14.784 [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/39/dd/39dd2ca3b6a0c7a2291c945c680e788e912d10c5f41bad18529b3831bf4012e1.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. 06:07:14.784 [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" 06:07:14.785 [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" 06:07:14.786 [info] {"args":{"id":1301398},"id":189175,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4734112,"event":"job:stop","queue_time":18049391,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 06:07:14.794 [info] {"args":{"id":1301400},"id":189177,"meta":{},"system_time":1772366834794420036,"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"]} 06:07:14.795 [debug] QUERY OK source="media_items" db=0.4ms idle=320.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" = ?) [1301400] 06:07:14.795 [info] User scripts lifecyle file either not present or is empty. Skipping. 06:07:14.796 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=320.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:07:14.797 [debug] QUERY OK source="media_profiles" db=0.4ms idle=320.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] 06:07:14.798 [debug] QUERY OK source="media_items" db=0.8ms idle=11.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] 06:07:14.801 [debug] QUERY OK source="media_metadata" db=0.1ms 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" = ?) [1301400] 06:07:14.801 [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] 06:07:14.802 [debug] QUERY OK source="settings" db=0.1ms 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 [] 06:07:14.802 [debug] QUERY OK source="settings" db=0.1ms 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 [] 06:07:14.803 [debug] Running yt-dlp command for action: get_downloadable_status 06:07:14.804 [debug] QUERY OK source="settings" db=0.2ms 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 [] 06:07:14.805 [debug] QUERY OK source="settings" db=0.2ms idle=3.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:07:14.805 [debug] QUERY OK source="settings" db=0.3ms 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 [] 06:07:14.806 [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/9d/7c/9d7c1a093e669bc12c44b94a31eb4f0b0122fb830a10142e35465b5ae8042d32.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 06:07:15.017 [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/a8/18/a8185a987b564b6b2437354b73c3a93702fd1d01af6ead4b0e679a861caed650.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. 06:07:15.017 [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" 06:07:15.017 [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" 06:07:15.018 [info] {"args":{"id":1301399},"id":189176,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4685621,"event":"job:stop","queue_time":18330364,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 06:07:15.477 [debug] Current batch of media processed. Will check again in 1000ms 06:07:16.478 [debug] Current batch of media processed. Will check again in 1000ms 06:07:17.479 [debug] Current batch of media processed. Will check again in 1000ms 06:07:18.480 [debug] Current batch of media processed. Will check again in 1000ms 06:07:19.295 [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/9d/7c/9d7c1a093e669bc12c44b94a31eb4f0b0122fb830a10142e35465b5ae8042d32.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. 06:07:19.295 [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" 06:07:19.296 [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" 06:07:19.297 [info] {"args":{"id":1301400},"id":189177,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4501716,"event":"job:stop","queue_time":22792379,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 06:07:19.481 [debug] Current batch of media processed. Will check again in 1000ms 06:07:20.482 [debug] Current batch of media processed. Will check again in 1000ms 06:07:21.483 [debug] Current batch of media processed. Will check again in 1000ms 06:07:22.484 [debug] Current batch of media processed. Will check again in 1000ms 06:07:23.485 [debug] Current batch of media processed. Will check again in 1000ms 06:07:24.486 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Introducing the new Xero Arch Installer, which is a beautiful, streamlined Arch Linux installer with a easy-to-use, modern TUI interface.\n\nREFERENCED:\n► https://github.com/xerolinux/XeroInstall\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" => 908, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e020600_Transform Arch Linux Into XeroLinux.mp4", "id" => "eJag0014isw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=eJag0014isw", "playlist_index" => 8, "timestamp" => 1770386467, "title" => "Transform Arch Linux Into XeroLinux", "upload_date" => "20260206"} 06:07:24.487 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1708.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] 06:07:24.488 [debug] QUERY OK source="sources" db=0.3ms idle=1709.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:07:24.495 [debug] QUERY OK source="media_items" db=6.3ms idle=1709.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 14:01:07Z], 35] 06:07:24.497 [debug] QUERY OK source="media_items" db=1.7ms idle=1059.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" ["Introducing the new Xero Arch Installer, which is a beautiful, streamlined Arch Linux installer with a easy-to-use, modern TUI interface.\n\nREFERENCED:\n► https://github.com/xerolinux/XeroInstall\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!", "Transform Arch Linux Into XeroLinux", "ecc140ba-30fa-406a-9035-8429141222fd", "eJag0014isw", 908, false, "https://www.youtube.com/watch?v=eJag0014isw", 8, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e020600_Transform Arch Linux Into XeroLinux.mp4", false, false, false, 35, [], 98, ~U[2026-02-06 14:01:07Z], ~U[2026-03-01 12:07:24Z], ~U[2026-03-01 12:07:24Z], "Introducing the new Xero Arch Installer, which is a beautiful, streamlined Arch Linux installer with a easy-to-use, modern TUI interface.\n\nREFERENCED:\n► https://github.com/xerolinux/XeroInstall\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!", "Transform Arch Linux Into XeroLinux", "eJag0014isw", 908, false, "https://www.youtube.com/watch?v=eJag0014isw", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e020600_Transform Arch Linux Into XeroLinux.mp4", false, 35, ~U[2026-02-06 14:01:07Z]] 06:07:24.498 [debug] QUERY OK source="sources" db=0.3ms idle=59.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:07:24.498 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 06:07:24.499 [debug] QUERY OK source="media_items" db=0.4ms idle=10.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 [2203303] 06:07:24.499 [debug] Current batch of media processed. Will check again in 1000ms 06:07:25.500 [debug] Current batch of media processed. Will check again in 1000ms 06:07:26.501 [debug] Current batch of media processed. Will check again in 1000ms 06:07:27.502 [debug] Current batch of media processed. Will check again in 1000ms 06:07:28.503 [debug] Current batch of media processed. Will check again in 1000ms 06:07:29.504 [debug] Current batch of media processed. Will check again in 1000ms 06:07:30.505 [debug] Current batch of media processed. Will check again in 1000ms 06:07:31.506 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "After a severe winter storm, I've spent the last 8 days without power. And that got me thinking...\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" => 1067, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e020200_Digital Detox And Being Self Sufficient.mp4", "id" => "RQppXZ6H-J0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=RQppXZ6H-J0", "playlist_index" => 9, "timestamp" => 1770040844, "title" => "Digital Detox And Being Self Sufficient", "upload_date" => "20260202"} 06:07:31.507 [debug] QUERY OK source="sources" db=0.3ms idle=1728.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 06:07:31.508 [debug] QUERY OK source="sources" db=0.2ms idle=1728.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] 06:07:31.513 [debug] QUERY OK source="media_items" db=5.4ms idle=1729.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-02 14:00:44Z], 35] 06:07:31.516 [debug] QUERY OK source="media_items" db=1.8ms idle=1060.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" ["After a severe winter storm, I've spent the last 8 days without power. And that got me thinking...\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!", "Digital Detox And Being Self Sufficient", "f4b79893-ffc4-47e3-abd0-739851d25dd7", "RQppXZ6H-J0", 1067, false, "https://www.youtube.com/watch?v=RQppXZ6H-J0", 9, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e020200_Digital Detox And Being Self Sufficient.mp4", false, false, false, 35, [], 98, ~U[2026-02-02 14:00:44Z], ~U[2026-03-01 12:07:31Z], ~U[2026-03-01 12:07:31Z], "After a severe winter storm, I've spent the last 8 days without power. And that got me thinking...\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!", "Digital Detox And Being Self Sufficient", "RQppXZ6H-J0", 1067, false, "https://www.youtube.com/watch?v=RQppXZ6H-J0", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e020200_Digital Detox And Being Self Sufficient.mp4", false, 35, ~U[2026-02-02 14:00:44Z]] 06:07:31.517 [debug] QUERY OK source="sources" db=0.4ms idle=61.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:07:31.517 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 06:07:31.518 [debug] QUERY OK source="media_items" db=0.4ms idle=10.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 [2171883] 06:07:31.518 [debug] Current batch of media processed. Will check again in 1000ms 06:07:32.519 [debug] Current batch of media processed. Will check again in 1000ms 06:07:33.520 [debug] Current batch of media processed. Will check again in 1000ms 06:07:34.521 [debug] Current batch of media processed. Will check again in 1000ms 06:07:35.522 [debug] Current batch of media processed. Will check again in 1000ms 06:07:36.523 [debug] Current batch of media processed. Will check again in 1000ms 06:07:37.524 [debug] Current batch of media processed. Will check again in 1000ms 06:07:38.525 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A quick update after the ice storm that has left me without power for several days.\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" => 216, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e013000_Not Bald Boomer Rants About Bad Weather.mp4", "id" => "iN-J51qDzpk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=iN-J51qDzpk", "playlist_index" => 10, "timestamp" => 1769781673, "title" => "Not Bald Boomer Rants About Bad Weather", "upload_date" => "20260130"} 06:07:38.526 [debug] QUERY OK source="sources" db=0.4ms idle=1747.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] 06:07:38.527 [debug] QUERY OK source="sources" db=0.2ms idle=1748.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] 06:07:38.536 [debug] QUERY OK source="media_items" db=8.5ms idle=1748.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-30 14:01:13Z], 35] 06:07:38.539 [debug] QUERY OK source="media_items" db=2.2ms idle=1067.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" ["A quick update after the ice storm that has left me without power for several days.\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!", "Not Bald Boomer Rants About Bad Weather", "588da2ee-51c3-4b40-8675-6ef0ef12148f", "iN-J51qDzpk", 216, false, "https://www.youtube.com/watch?v=iN-J51qDzpk", 10, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e013000_Not Bald Boomer Rants About Bad Weather.mp4", false, false, false, 35, [], 98, ~U[2026-01-30 14:01:13Z], ~U[2026-03-01 12:07:38Z], ~U[2026-03-01 12:07:38Z], "A quick update after the ice storm that has left me without power for several days.\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!", "Not Bald Boomer Rants About Bad Weather", "iN-J51qDzpk", 216, false, "https://www.youtube.com/watch?v=iN-J51qDzpk", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e013000_Not Bald Boomer Rants About Bad Weather.mp4", false, 35, ~U[2026-01-30 14:01:13Z]] 06:07:38.540 [debug] QUERY OK source="sources" db=0.5ms idle=67.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:07:38.541 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=13.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] 06:07:38.542 [debug] QUERY OK source="media_items" db=0.6ms idle=14.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 [2147889] 06:07:38.542 [debug] Current batch of media processed. Will check again in 1000ms 06:07:39.543 [debug] Current batch of media processed. Will check again in 1000ms 06:07:40.544 [debug] Current batch of media processed. Will check again in 1000ms 06:07:41.545 [debug] Current batch of media processed. Will check again in 1000ms 06:07:42.204 [info] {"source":"oban","duration":22674,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:07:42.546 [debug] Current batch of media processed. Will check again in 1000ms 06:07:43.547 [debug] Current batch of media processed. Will check again in 1000ms 06:07:44.548 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Xonsh (sounds like \"consh\") is a modern, full-featured and cross-platform python shell. I recently switched to using Xonsh as my default user shell, but I ran into a big problem with it, mainly because I installed it the wrong way!\n\nREFERENCED:\n► https://xon.sh/\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" => 364, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e012600_My Xonsh Shell Experiment Failed! (...Kind Of).mp4", "id" => "Iif4GpL6yrQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Iif4GpL6yrQ", "playlist_index" => 11, "timestamp" => 1769436025, "title" => "My Xonsh Shell Experiment Failed! (...Kind Of)", "upload_date" => "20260126"} 06:07:44.549 [debug] QUERY OK source="sources" db=0.4ms idle=770.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] 06:07:44.550 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=771.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:07:44.557 [debug] QUERY OK source="media_items" db=6.8ms queue=0.1ms idle=772.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-26 14:00:25Z], 35] 06:07:44.561 [debug] QUERY OK source="media_items" db=2.4ms idle=779.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" ["Xonsh (sounds like \"consh\") is a modern, full-featured and cross-platform python shell. I recently switched to using Xonsh as my default user shell, but I ran into a big problem with it, mainly because I installed it the wrong way!\n\nREFERENCED:\n► https://xon.sh/\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!", "My Xonsh Shell Experiment Failed! (...Kind Of)", "f251b663-09cf-4b92-9b93-19e9dd869572", "Iif4GpL6yrQ", 364, false, "https://www.youtube.com/watch?v=Iif4GpL6yrQ", 11, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e012600_My Xonsh Shell Experiment Failed! (...Kind Of).mp4", false, false, false, 35, [], 98, ~U[2026-01-26 14:00:25Z], ~U[2026-03-01 12:07:44Z], ~U[2026-03-01 12:07:44Z], "Xonsh (sounds like \"consh\") is a modern, full-featured and cross-platform python shell. I recently switched to using Xonsh as my default user shell, but I ran into a big problem with it, mainly because I installed it the wrong way!\n\nREFERENCED:\n► https://xon.sh/\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!", "My Xonsh Shell Experiment Failed! (...Kind Of)", "Iif4GpL6yrQ", 364, false, "https://www.youtube.com/watch?v=Iif4GpL6yrQ", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e012600_My Xonsh Shell Experiment Failed! (...Kind Of).mp4", false, 35, ~U[2026-01-26 14:00:25Z]] 06:07:44.562 [debug] QUERY OK source="sources" db=0.5ms idle=76.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:07:44.562 [debug] QUERY OK source="media_profiles" db=0.4ms idle=12.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] 06:07:44.563 [debug] QUERY OK source="media_items" db=0.6ms idle=12.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 [2115966] 06:07:44.564 [debug] Current batch of media processed. Will check again in 1000ms 06:07:45.564 [debug] Current batch of media processed. Will check again in 1000ms 06:07:46.565 [debug] Current batch of media processed. Will check again in 1000ms 06:07:47.566 [debug] Current batch of media processed. Will check again in 1000ms 06:07:48.567 [debug] Current batch of media processed. Will check again in 1000ms 06:07:49.568 [debug] Current batch of media processed. Will check again in 1000ms 06:07:50.569 [debug] Current batch of media processed. Will check again in 1000ms 06:07:51.570 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "DankMaterialShell is a complete desktop shell for niri, Hyprland, MangoWC, Sway, labwc, Scroll, and other Wayland compositors. It replaces waybar, swaylock, swayidle, mako, fuzzel, polkit, and everything else you'd normally stitch together to make a desktop.\n\nREFERENCED:\n► https://github.com/AvengeMedia/DankMaterialShell\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" => 876, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e012300_The Dank Material Shell - A Wayland Desktop Suite.mp4", "id" => "1ILZevPGgJw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=1ILZevPGgJw", "playlist_index" => 12, "timestamp" => 1769176802, "title" => "The Dank Material Shell - A Wayland Desktop Suite", "upload_date" => "20260123"} 06:07:51.572 [debug] QUERY OK source="sources" db=0.6ms idle=1792.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] 06:07:51.573 [debug] QUERY OK source="sources" db=0.4ms idle=1793.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:07:51.579 [debug] QUERY OK source="media_items" db=6.0ms queue=0.1ms idle=1794.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-23 14:00:02Z], 35] 06:07:51.582 [debug] QUERY OK source="media_items" db=2.2ms idle=1082.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" ["DankMaterialShell is a complete desktop shell for niri, Hyprland, MangoWC, Sway, labwc, Scroll, and other Wayland compositors. It replaces waybar, swaylock, swayidle, mako, fuzzel, polkit, and everything else you'd normally stitch together to make a desktop.\n\nREFERENCED:\n► https://github.com/AvengeMedia/DankMaterialShell\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!", "The Dank Material Shell - A Wayland Desktop Suite", "ad91fd28-fe52-4bec-8b39-7b0a208509bb", "1ILZevPGgJw", 876, false, "https://www.youtube.com/watch?v=1ILZevPGgJw", 12, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e012300_The Dank Material Shell - A Wayland Desktop Suite.mp4", false, false, false, 35, [], 98, ~U[2026-01-23 14:00:02Z], ~U[2026-03-01 12:07:51Z], ~U[2026-03-01 12:07:51Z], "DankMaterialShell is a complete desktop shell for niri, Hyprland, MangoWC, Sway, labwc, Scroll, and other Wayland compositors. It replaces waybar, swaylock, swayidle, mako, fuzzel, polkit, and everything else you'd normally stitch together to make a desktop.\n\nREFERENCED:\n► https://github.com/AvengeMedia/DankMaterialShell\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!", "The Dank Material Shell - A Wayland Desktop Suite", "1ILZevPGgJw", 876, false, "https://www.youtube.com/watch?v=1ILZevPGgJw", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e012300_The Dank Material Shell - A Wayland Desktop Suite.mp4", false, 35, ~U[2026-01-23 14:00:02Z]] 06:07:51.583 [debug] QUERY OK source="sources" db=0.5ms idle=83.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] 06:07:51.584 [debug] QUERY OK source="media_profiles" db=0.4ms idle=11.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] 06:07:51.585 [debug] QUERY OK source="media_items" db=0.6ms idle=11.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 [2091557] 06:07:51.585 [debug] Current batch of media processed. Will check again in 1000ms 06:07:52.586 [debug] Current batch of media processed. Will check again in 1000ms 06:07:53.587 [debug] Current batch of media processed. Will check again in 1000ms 06:07:54.588 [debug] Current batch of media processed. Will check again in 1000ms 06:07:55.589 [debug] Current batch of media processed. Will check again in 1000ms 06:07:56.590 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I switched to the Kensington Expert trackball about 5 years ago. I even did a video about it (https://www.youtube.com/watch?v=VaG4sCXTkrw). But recently I have been having a bit of hand pain, and I suspected that the mouse was the problem. So...I decided to try a different Kensington trackball--the Orbit! \n\nREFERENCED:\n► https://amzn.to/45eSLvF - Kensington Orbit Trackball Mouse\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" => 701, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011900_The Kensington Orbit Trackball Mouse (Will It Solve My Hand Pain?).mp4", "id" => "BZqHn8w0MGg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=BZqHn8w0MGg", "playlist_index" => 13, "timestamp" => 1768831218, "title" => "The Kensington Orbit Trackball Mouse (Will It Solve My Hand Pain?)", "upload_date" => "20260119"} 06:07:56.591 [debug] QUERY OK source="sources" db=0.5ms idle=1812.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] 06:07:56.592 [debug] QUERY OK source="sources" db=0.3ms idle=1813.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] 06:07:56.600 [debug] QUERY OK source="media_items" db=7.5ms idle=1814.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-19 14:00:18Z], 35] 06:07:56.604 [debug] QUERY OK source="media_items" db=2.4ms idle=1090.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 switched to the Kensington Expert trackball about 5 years ago. I even did a video about it (https://www.youtube.com/watch?v=VaG4sCXTkrw). But recently I have been having a bit of hand pain, and I suspected that the mouse was the problem. So...I decided to try a different Kensington trackball--the Orbit! \n\nREFERENCED:\n► https://amzn.to/45eSLvF - Kensington Orbit Trackball Mouse\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!", "The Kensington Orbit Trackball Mouse (Will It Solve My Hand Pain?)", "4d56e8ff-e045-4eae-8d4f-ee6a962a149b", "BZqHn8w0MGg", 701, false, "https://www.youtube.com/watch?v=BZqHn8w0MGg", 13, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011900_The Kensington Orbit Trackball Mouse (Will It Solve My Hand Pain?).mp4", false, false, false, 35, [], 98, ~U[2026-01-19 14:00:18Z], ~U[2026-03-01 12:07:56Z], ~U[2026-03-01 12:07:56Z], "I switched to the Kensington Expert trackball about 5 years ago. I even did a video about it (https://www.youtube.com/watch?v=VaG4sCXTkrw). But recently I have been having a bit of hand pain, and I suspected that the mouse was the problem. So...I decided to try a different Kensington trackball--the Orbit! \n\nREFERENCED:\n► https://amzn.to/45eSLvF - Kensington Orbit Trackball Mouse\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!", "The Kensington Orbit Trackball Mouse (Will It Solve My Hand Pain?)", "BZqHn8w0MGg", 701, false, "https://www.youtube.com/watch?v=BZqHn8w0MGg", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011900_The Kensington Orbit Trackball Mouse (Will It Solve My Hand Pain?).mp4", false, 35, ~U[2026-01-19 14:00:18Z]] 06:07:56.605 [debug] QUERY OK source="sources" db=0.5ms idle=91.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] 06:07:56.606 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=13.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] 06:07:56.607 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=13.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 [2059366] 06:07:56.607 [debug] Current batch of media processed. Will check again in 1000ms 06:07:57.608 [debug] Current batch of media processed. Will check again in 1000ms 06:07:58.609 [debug] Current batch of media processed. Will check again in 1000ms 06:07:59.610 [debug] Current batch of media processed. Will check again in 1000ms 06:08:00.167 [info] {"source":"oban","duration":395,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:08:00.611 [debug] Current batch of media processed. Will check again in 1000ms 06:08:01.612 [debug] Current batch of media processed. Will check again in 1000ms 06:08:02.613 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I'm taking a quick first look at Niri, which is a scrollable-tiling Wayland compositor.\n\nREFERENCED:\n► https://github.com/YaLTeR/niri/\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" => 1003, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011600_A Quick First Look At The Niri Window Manager.mp4", "id" => "uiXiD5foFCI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=uiXiD5foFCI", "playlist_index" => 14, "timestamp" => 1768572101, "title" => "A Quick First Look At The Niri Window Manager", "upload_date" => "20260116"} 06:08:02.614 [debug] QUERY OK source="sources" db=0.3ms idle=835.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 06:08:02.615 [debug] QUERY OK source="sources" db=0.3ms idle=836.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:08:02.621 [debug] QUERY OK source="media_items" db=5.7ms idle=836.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-16 14:01:41Z], 35] 06:08:02.623 [debug] QUERY OK source="media_items" db=1.7ms idle=843.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'm taking a quick first look at Niri, which is a scrollable-tiling Wayland compositor.\n\nREFERENCED:\n► https://github.com/YaLTeR/niri/\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 First Look At The Niri Window Manager", "9ef85f39-5067-42ed-9378-e669a468fbc4", "uiXiD5foFCI", 1003, false, "https://www.youtube.com/watch?v=uiXiD5foFCI", 14, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011600_A Quick First Look At The Niri Window Manager.mp4", false, false, false, 35, [], 98, ~U[2026-01-16 14:01:41Z], ~U[2026-03-01 12:08:02Z], ~U[2026-03-01 12:08:02Z], "I'm taking a quick first look at Niri, which is a scrollable-tiling Wayland compositor.\n\nREFERENCED:\n► https://github.com/YaLTeR/niri/\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 First Look At The Niri Window Manager", "uiXiD5foFCI", 1003, false, "https://www.youtube.com/watch?v=uiXiD5foFCI", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011600_A Quick First Look At The Niri Window Manager.mp4", false, 35, ~U[2026-01-16 14:01:41Z]] 06:08:02.624 [debug] QUERY OK source="sources" db=0.3ms idle=98.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:08:02.625 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 06:08:02.625 [debug] QUERY OK source="media_items" db=0.5ms idle=10.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 [2035356] 06:08:02.626 [debug] Current batch of media processed. Will check again in 1000ms 06:08:03.626 [debug] Current batch of media processed. Will check again in 1000ms 06:08:04.627 [debug] Current batch of media processed. Will check again in 1000ms 06:08:05.628 [debug] Current batch of media processed. Will check again in 1000ms 06:08:06.629 [debug] Current batch of media processed. Will check again in 1000ms 06:08:07.630 [debug] Current batch of media processed. Will check again in 1000ms 06:08:08.631 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "There is a new \"software movement\" that seems to be gaining ground. It's the \"fair source\" movement, and it's quite discriminatory in nature. Sadly, I see some within the FOSS community actually advocating for \"fair source.\"\n\nREFERENCED:\n► https://fair.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" => 929, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011200_Fair Source Software Is Incredibly Unfair.mp4", "id" => "V_L0MNy8Mpg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=V_L0MNy8Mpg", "playlist_index" => 15, "timestamp" => 1768226462, "title" => "Fair Source Software Is Incredibly Unfair", "upload_date" => "20260112"} 06:08:08.632 [debug] QUERY OK source="sources" db=0.3ms idle=853.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 06:08:08.633 [debug] QUERY OK source="sources" db=0.2ms idle=854.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:08:08.638 [debug] QUERY OK source="media_items" db=5.1ms idle=854.6ms 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 14:01:02Z], 35] 06:08:08.640 [debug] QUERY OK source="media_items" db=1.6ms idle=860.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 is a new \"software movement\" that seems to be gaining ground. It's the \"fair source\" movement, and it's quite discriminatory in nature. Sadly, I see some within the FOSS community actually advocating for \"fair source.\"\n\nREFERENCED:\n► https://fair.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!", "Fair Source Software Is Incredibly Unfair", "0e63630f-a594-448b-a70c-bc1accc4a0b5", "V_L0MNy8Mpg", 929, false, "https://www.youtube.com/watch?v=V_L0MNy8Mpg", 15, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011200_Fair Source Software Is Incredibly Unfair.mp4", false, false, false, 35, [], 98, ~U[2026-01-12 14:01:02Z], ~U[2026-03-01 12:08:08Z], ~U[2026-03-01 12:08:08Z], "There is a new \"software movement\" that seems to be gaining ground. It's the \"fair source\" movement, and it's quite discriminatory in nature. Sadly, I see some within the FOSS community actually advocating for \"fair source.\"\n\nREFERENCED:\n► https://fair.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!", "Fair Source Software Is Incredibly Unfair", "V_L0MNy8Mpg", 929, false, "https://www.youtube.com/watch?v=V_L0MNy8Mpg", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011200_Fair Source Software Is Incredibly Unfair.mp4", false, 35, ~U[2026-01-12 14:01:02Z]] 06:08:08.641 [debug] QUERY OK source="sources" db=0.3ms idle=102.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:08:08.642 [debug] QUERY OK source="media_profiles" db=0.3ms idle=9.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] 06:08:08.643 [debug] QUERY OK source="media_items" db=0.4ms idle=9.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [2002899] 06:08:08.643 [debug] Current batch of media processed. Will check again in 1000ms 06:08:09.643 [debug] Current batch of media processed. Will check again in 1000ms 06:08:10.644 [debug] Current batch of media processed. Will check again in 1000ms 06:08:11.645 [debug] Current batch of media processed. Will check again in 1000ms 06:08:12.225 [info] {"source":"oban","duration":20016,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:08:12.646 [debug] Current batch of media processed. Will check again in 1000ms 06:08:13.647 [debug] Current batch of media processed. Will check again in 1000ms 06:08:14.648 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I've been using Qtile on-and-off again for probably a decade or longer. Qtile is a full-featured, hackable tiling window manager written and configured in Python. It was originally written for X11 but it does have a Wayland session. Let's try it out!\n\nREFERENCED:\n► https://qtile.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" => 1048, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010800_Qtile On Wayland...It Kinda Works!.mp4", "id" => "8YdBCIqhzs8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=8YdBCIqhzs8", "playlist_index" => 16, "timestamp" => 1767880813, "title" => "Qtile On Wayland...It Kinda Works!", "upload_date" => "20260108"} 06:08:14.649 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=870.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] 06:08:14.650 [debug] QUERY OK source="sources" db=0.2ms idle=871.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:08:14.656 [debug] QUERY OK source="media_items" db=6.0ms idle=872.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-08 14:00:13Z], 35] 06:08:14.659 [debug] QUERY OK source="media_items" db=2.1ms idle=878.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've been using Qtile on-and-off again for probably a decade or longer. Qtile is a full-featured, hackable tiling window manager written and configured in Python. It was originally written for X11 but it does have a Wayland session. Let's try it out!\n\nREFERENCED:\n► https://qtile.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!", "Qtile On Wayland...It Kinda Works!", "c3ad5af8-6e73-48a4-a81c-f64955cd8870", "8YdBCIqhzs8", 1048, false, "https://www.youtube.com/watch?v=8YdBCIqhzs8", 16, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010800_Qtile On Wayland...It Kinda Works!.mp4", false, false, false, 35, [], 98, ~U[2026-01-08 14:00:13Z], ~U[2026-03-01 12:08:14Z], ~U[2026-03-01 12:08:14Z], "I've been using Qtile on-and-off again for probably a decade or longer. Qtile is a full-featured, hackable tiling window manager written and configured in Python. It was originally written for X11 but it does have a Wayland session. Let's try it out!\n\nREFERENCED:\n► https://qtile.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!", "Qtile On Wayland...It Kinda Works!", "8YdBCIqhzs8", 1048, false, "https://www.youtube.com/watch?v=8YdBCIqhzs8", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010800_Qtile On Wayland...It Kinda Works!.mp4", false, 35, ~U[2026-01-08 14:00:13Z]] 06:08:14.660 [debug] QUERY OK source="sources" db=0.5ms idle=107.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] 06:08:14.661 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 06:08:14.662 [debug] QUERY OK source="media_items" db=0.5ms idle=11.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 [1970924] 06:08:14.662 [debug] Current batch of media processed. Will check again in 1000ms 06:08:15.663 [debug] Current batch of media processed. Will check again in 1000ms 06:08:15.851 [info] GET /sources/43/media/2342586/force_download 06:08:15.852 [debug] QUERY OK source="settings" db=0.3ms idle=295.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:08:15.852 [debug] QUERY OK source="settings" db=0.2ms idle=73.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:08:15.853 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:08:15.853 [error] #PID<0.167215.0> running PinchflatWeb.Endpoint (connection #PID<0.167214.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/43/media/2342586/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/2342586/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167214.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2342586/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 47338}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167215.0>, params: %{}, path_info: ["sources", "43", "media", "2342586", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://tubesync.cochrun.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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/43/media/2342586/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJi2TSbipjaMpqcAUzEB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167214.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2342586/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 47338}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/2342586/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167214.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2342586/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 47338}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167215.0>, params: %{}, path_info: ["sources", "43", "media", "2342586", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://tubesync.cochrun.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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 06:08:16.664 [debug] Current batch of media processed. Will check again in 1000ms 06:08:17.665 [debug] Current batch of media processed. Will check again in 1000ms 06:08:18.666 [debug] Current batch of media processed. Will check again in 1000ms 06:08:19.668 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "We have entered a new age of programming. It is the age of \"vibe coding,\" which is using A.I. tools like ChatGPT or Gemini to write your programs.\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" => 870, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010400_Vibe Coding Is The Evolution Of Programming.mp4", "id" => "2wfs0A94_T4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=2wfs0A94_T4", "playlist_index" => 17, "timestamp" => 1767535207, "title" => "Vibe Coding Is The Evolution Of Programming", "upload_date" => "20260104"} 06:08:19.669 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=1889.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [35] 06:08:19.670 [debug] QUERY OK source="sources" db=0.6ms idle=1891.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:08:19.679 [debug] QUERY OK source="media_items" db=8.1ms idle=1892.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-04 14:00:07Z], 35] 06:08:19.690 [debug] QUERY OK source="media_items" db=9.7ms queue=0.1ms idle=1116.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" ["We have entered a new age of programming. It is the age of \"vibe coding,\" which is using A.I. tools like ChatGPT or Gemini to write your programs.\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!", "Vibe Coding Is The Evolution Of Programming", "f11f4c42-1deb-4512-b7c9-55f2343c8c8a", "2wfs0A94_T4", 870, false, "https://www.youtube.com/watch?v=2wfs0A94_T4", 17, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010400_Vibe Coding Is The Evolution Of Programming.mp4", false, false, false, 35, [], 98, ~U[2026-01-04 14:00:07Z], ~U[2026-03-01 12:08:19Z], ~U[2026-03-01 12:08:19Z], "We have entered a new age of programming. It is the age of \"vibe coding,\" which is using A.I. tools like ChatGPT or Gemini to write your programs.\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!", "Vibe Coding Is The Evolution Of Programming", "2wfs0A94_T4", 870, false, "https://www.youtube.com/watch?v=2wfs0A94_T4", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010400_Vibe Coding Is The Evolution Of Programming.mp4", false, 35, ~U[2026-01-04 14:00:07Z]] 06:08:19.691 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms 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" = ?) [35] 06:08:19.692 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=22.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] 06:08:19.693 [debug] QUERY OK source="media_items" db=0.7ms idle=22.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 [1938941] 06:08:19.694 [debug] Current batch of media processed. Will check again in 1000ms 06:08:20.694 [debug] Current batch of media processed. Will check again in 1000ms 06:08:21.695 [debug] Current batch of media processed. Will check again in 1000ms 06:08:22.696 [debug] Current batch of media processed. Will check again in 1000ms 06:08:23.697 [debug] Current batch of media processed. Will check again in 1000ms 06:08:24.698 [debug] Current batch of media processed. Will check again in 1000ms 06:08:25.699 [debug] Current batch of media processed. Will check again in 1000ms 06:08:26.701 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The 'awk command' is really an entire programming language used for working with files and text.\n\n- Print a file (similar to 'cat'):\n awk '{print}' path/to/file\n OR\n awk '{print $0}' path/to/file\n\n- Print the 2nd field of each line:\n awk '{print $2}' path/to/file\n\n- Print the last field of each line:\n awk '{print $NF}' path/to/file\n\n- Search for lines containing 'string' and print the second field of those lines:\n awk '/string/ {print $2}' path/to/file\n\n- Use a different field separator (instead of space) and print 1st and 7th fields with a TAB in between:\n awk -F \":\" '{print $1 \"\\t\" $7}' /etc/passwd\n\n- Find a specific string in any column:\n ps -ef | awk '{ if($NF == \"/usr/bin/pipewire\") print $0};'\n NOTE We search if the last field is '/usr/bin/pipewire' and print the line.\n\n- Search 1st field if it starts with 'b' or 'c', then prints the line:\n awk '$1 ~ /^[b,c]/ {print $0}' .bashrc\n NOTE The '~' character is the regex match operator.\n\n- Use the 'substr' function to print each record from the 2nd character onward:\n awk '{print substr($0, 2)}' .bashrc\n NOTE It essentially prints the document but omits the first character of each line.\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" => 491, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010100_'awk' - a programming language for working on files - Video Man Pages.mp4", "id" => "cK1JMK7Ckq0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=cK1JMK7Ckq0", "playlist_index" => 18, "timestamp" => 1767276064, "title" => "'awk' - a programming language for working on files - Video Man Pages", "upload_date" => "20260101"} 06:08:26.702 [debug] QUERY OK source="sources" db=0.4ms idle=1922.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 06:08:26.702 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1923.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:08:26.710 [debug] QUERY OK source="media_items" db=6.8ms queue=0.1ms idle=1924.5ms 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 14:01:04Z], 35] 06:08:26.714 [debug] QUERY OK source="media_items" db=3.2ms idle=1131.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 'awk command' is really an entire programming language used for working with files and text.\n\n- Print a file (similar to 'cat'):\n awk '{print}' path/to/file\n OR\n awk '{print $0}' path/to/file\n\n- Print the 2nd field of each line:\n awk '{print $2}' path/to/file\n\n- Print the last field of each line:\n awk '{print $NF}' path/to/file\n\n- Search for lines containing 'string' and print the second field of those lines:\n awk '/string/ {print $2}' path/to/file\n\n- Use a different field separator (instead of space) and print 1st and 7th fields with a TAB in between:\n awk -F \":\" '{print $1 \"\\t\" $7}' /etc/passwd\n\n- Find a specific string in any column:\n ps -ef | awk '{ if($NF == \"/usr/bin/pipewire\") print $0};'\n NOTE We search if the last field is '/usr/bin/pipewire' and print the line.\n\n- Search 1st field if it starts with 'b' or 'c', then prints the line:\n awk '$1 ~ /^[b,c]/ {print $0}' .bashrc\n NOTE The '~' character is the regex match operator.\n\n- Use the 'substr' function to print each record from the 2nd character onward:\n awk '{print substr($0, 2)}' .bashrc\n NOTE It essentially prints the document but omits the first character of each line.\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!", "'awk' - a programming language for working on files - Video Man Pages", "93dc79a5-770a-4b68-bfdb-37dcc0550622", "cK1JMK7Ckq0", 491, false, "https://www.youtube.com/watch?v=cK1JMK7Ckq0", 18, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010100_'awk' - a programming language for working on files - Video Man Pages.mp4", false, false, false, 35, [], 98, ~U[2026-01-01 14:01:04Z], ~U[2026-03-01 12:08:26Z], ~U[2026-03-01 12:08:26Z], "The 'awk command' is really an entire programming language used for working with files and text.\n\n- Print a file (similar to 'cat'):\n awk '{print}' path/to/file\n OR\n awk '{print $0}' path/to/file\n\n- Print the 2nd field of each line:\n awk '{print $2}' path/to/file\n\n- Print the last field of each line:\n awk '{print $NF}' path/to/file\n\n- Search for lines containing 'string' and print the second field of those lines:\n awk '/string/ {print $2}' path/to/file\n\n- Use a different field separator (instead of space) and print 1st and 7th fields with a TAB in between:\n awk -F \":\" '{print $1 \"\\t\" $7}' /etc/passwd\n\n- Find a specific string in any column:\n ps -ef | awk '{ if($NF == \"/usr/bin/pipewire\") print $0};'\n NOTE We search if the last field is '/usr/bin/pipewire' and print the line.\n\n- Search 1st field if it starts with 'b' or 'c', then prints the line:\n awk '$1 ~ /^[b,c]/ {print $0}' .bashrc\n NOTE The '~' character is the regex match operator.\n\n- Use the 'substr' function to print each record from the 2nd character onward:\n awk '{print substr($0, 2)}' .bashrc\n NOTE It essentially prints the document but omits the first character of each line.\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!", "'awk' - a programming language for working on files - Video Man Pages", "cK1JMK7Ckq0", 491, false, "https://www.youtube.com/watch?v=cK1JMK7Ckq0", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010100_'awk' - a programming language for working on files - Video Man Pages.mp4", false, 35, ~U[2026-01-01 14:01:04Z]] 06:08:26.715 [debug] QUERY OK source="sources" db=0.6ms idle=134.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:08:26.716 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=14.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] 06:08:26.718 [debug] QUERY OK source="media_items" db=0.8ms idle=14.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 [1914888] 06:08:26.718 [debug] Current batch of media processed. Will check again in 1000ms 06:08:27.719 [debug] Current batch of media processed. Will check again in 1000ms 06:08:28.720 [debug] Current batch of media processed. Will check again in 1000ms 06:08:29.721 [debug] Current batch of media processed. Will check again in 1000ms 06:08:30.722 [debug] Current batch of media processed. Will check again in 1000ms 06:08:31.723 [debug] Current batch of media processed. Will check again in 1000ms 06:08:32.725 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The 'cut' command is used to cut sections from lines of text.\n\n- Print the third character (-c) on each line:\n cut -c 3 /path/to/file\n command | cut -c 3\n\n- Print characters 5-10 of each line of a file:\n cut -c 5-10 path/to/file\n\n- Split each line using a delimiter into fields, and print fields (-f) 2 and 5:\n cut -f 2,5 path/to/file\n NOTE The default delimiter is the TAB.\n\n- Split each line using a specified delimiter (-d) and print field 4 and all fields after:\n cut -d \":\" -f 4- /etc/passwd\n NOTE The /etc/passwd file uses colons to separate fields of information.\n\n- Split each line using a specified delimiter (-d) and print field 4 and all fields previous:\n cut -d \":\" -f -4 /etc/passwd\n\n- Do not print lines that do not contain the delimiter (-s):\n cut -d \" \" -f -4 -s .bashrc\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" => 283, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e123000_'cut' - cut sections from lines of text - Video Man Pages.mp4", "id" => "9hoTL0GP2uQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=9hoTL0GP2uQ", "playlist_index" => 19, "timestamp" => 1767103216, "title" => "'cut' - cut sections from lines of text - Video Man Pages", "upload_date" => "20251230"} 06:08:32.726 [debug] QUERY OK source="sources" db=0.6ms idle=946.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 06:08:32.727 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=948.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:08:32.736 [debug] QUERY OK source="media_items" db=8.3ms idle=949.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-30 14:00:16Z], 35] 06:08:32.741 [debug] QUERY OK source="media_items" db=3.4ms queue=0.1ms idle=958.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 'cut' command is used to cut sections from lines of text.\n\n- Print the third character (-c) on each line:\n cut -c 3 /path/to/file\n command | cut -c 3\n\n- Print characters 5-10 of each line of a file:\n cut -c 5-10 path/to/file\n\n- Split each line using a delimiter into fields, and print fields (-f) 2 and 5:\n cut -f 2,5 path/to/file\n NOTE The default delimiter is the TAB.\n\n- Split each line using a specified delimiter (-d) and print field 4 and all fields after:\n cut -d \":\" -f 4- /etc/passwd\n NOTE The /etc/passwd file uses colons to separate fields of information.\n\n- Split each line using a specified delimiter (-d) and print field 4 and all fields previous:\n cut -d \":\" -f -4 /etc/passwd\n\n- Do not print lines that do not contain the delimiter (-s):\n cut -d \" \" -f -4 -s .bashrc\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!", "'cut' - cut sections from lines of text - Video Man Pages", "0973fd90-d78b-4da5-88d4-2ffe1d8bf7a9", "9hoTL0GP2uQ", 283, false, "https://www.youtube.com/watch?v=9hoTL0GP2uQ", 19, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e123000_'cut' - cut sections from lines of text - Video Man Pages.mp4", false, false, false, 35, [], 98, ~U[2025-12-30 14:00:16Z], ~U[2026-03-01 12:08:32Z], ~U[2026-03-01 12:08:32Z], "The 'cut' command is used to cut sections from lines of text.\n\n- Print the third character (-c) on each line:\n cut -c 3 /path/to/file\n command | cut -c 3\n\n- Print characters 5-10 of each line of a file:\n cut -c 5-10 path/to/file\n\n- Split each line using a delimiter into fields, and print fields (-f) 2 and 5:\n cut -f 2,5 path/to/file\n NOTE The default delimiter is the TAB.\n\n- Split each line using a specified delimiter (-d) and print field 4 and all fields after:\n cut -d \":\" -f 4- /etc/passwd\n NOTE The /etc/passwd file uses colons to separate fields of information.\n\n- Split each line using a specified delimiter (-d) and print field 4 and all fields previous:\n cut -d \":\" -f -4 /etc/passwd\n\n- Do not print lines that do not contain the delimiter (-s):\n cut -d \" \" -f -4 -s .bashrc\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!", "'cut' - cut sections from lines of text - Video Man Pages", "9hoTL0GP2uQ", 283, false, "https://www.youtube.com/watch?v=9hoTL0GP2uQ", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e123000_'cut' - cut sections from lines of text - Video Man Pages.mp4", false, 35, ~U[2025-12-30 14:00:16Z]] 06:08:32.742 [debug] QUERY OK source="sources" db=0.5ms queue=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 06:08:32.743 [debug] QUERY OK source="media_profiles" db=0.5ms idle=16.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] 06:08:32.744 [debug] QUERY OK source="media_items" db=0.5ms idle=16.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 [1899036] 06:08:32.744 [debug] Current batch of media processed. Will check again in 1000ms 06:08:32.968 [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/b6/25/b625117ddba96be39869ba6d0e933cd67495669185e282f9ef767cd98e8f29b3.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/a5/5f/a55f15dd8d353d393dfbb3a963cb62ab4142e19f47434be8b627a9d9891b006d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 06:08:32.970 [debug] Gracefully stopping file follower 06:08:32.972 [debug] QUERY OK source="sources" db=1.5ms queue=0.1ms idle=234.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 06:08:32.973 [debug] QUERY OK source="sources" db=0.3ms idle=232.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:08:32.981 [debug] QUERY OK source="media_items" db=7.9ms idle=230.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-28 14:01:30Z], 35] 06:08:32.987 [debug] QUERY OK source="media_items" db=4.0ms idle=238.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" ["'xargs' takes the output of one command (or contents of a file), converts it into a list of arguments, and passes that list to another command to execute. \n\n- Run a command using the input data as arguments:\n command1 | xargs command2\n \n- Count lines in multiple files:\n ls *.txt | xargs wc -l\n\n- Cat a file and use the input data as an argument:\n cat file | xargs\n NOTE If no xargs command is given, xargs uses 'echo' as the command.\n\n- The same as above except it executes the command once per argument (-n 1):\n cat file | xargs -n 1\n\n- Create 10 sequential .txt files. The '-I {}' symbolizes all the input:\n seq 10 | xargs -I {} touch {}.txt\n\n- Delete files with '.log' extension found by 'find'. The -print0 in 'find' and -0 in 'xargs' use a null character as a delimiter, ensuring filenames with spaces or special characters are handled correctly.\n find . -name \"*.log\" -print0 | xargs -0 rm -f\n \n- Find and delete all backup files (.bak). The '-p' option is useful for destructive operations, as it displays the command to be executed and asks for user confirmation (y/n).\n find . -type f -name \"*.bak\" | xargs -p rm\n\n- The '-d' option sets the delimiter (spaces by default):\n ls | xargs -n 1 (Files/directories with spaces are a problem.)\n ls | xargs -n 1 -d \\n (Uses new line as delimiter and problem solved!)\n \n- xargs can print (-a) the contents of a file to stdout. We can use '-p' to prompt for 'y/n' before executing. We can use '-r' to only execute if stdin is not empty.\n xargs -a 1.txt\n xargs -p -a 1.txt\n xargs -r -p -a 1.txt\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!", "'xargs' - execute command lines from standard input - Video Man Pages", "d7a6025f-766a-4550-9a62-8ac6f33303ae", "tUkQcvytVtw", 589, false, "https://www.youtube.com/watch?v=tUkQcvytVtw", 1, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022800_'xargs' - execute command lines from standard input - Video Man Pages.mp4", false, false, false, 35, [], 98, ~U[2026-02-28 14:01:30Z], ~U[2026-03-01 12:08:32Z], ~U[2026-03-01 12:08:32Z], "'xargs' takes the output of one command (or contents of a file), converts it into a list of arguments, and passes that list to another command to execute. \n\n- Run a command using the input data as arguments:\n command1 | xargs command2\n \n- Count lines in multiple files:\n ls *.txt | xargs wc -l\n\n- Cat a file and use the input data as an argument:\n cat file | xargs\n NOTE If no xargs command is given, xargs uses 'echo' as the command.\n\n- The same as above except it executes the command once per argument (-n 1):\n cat file | xargs -n 1\n\n- Create 10 sequential .txt files. The '-I {}' symbolizes all the input:\n seq 10 | xargs -I {} touch {}.txt\n\n- Delete files with '.log' extension found by 'find'. The -print0 in 'find' and -0 in 'xargs' use a null character as a delimiter, ensuring filenames with spaces or special characters are handled correctly.\n find . -name \"*.log\" -print0 | xargs -0 rm -f\n \n- Find and delete all backup files (.bak). The '-p' option is useful for destructive operations, as it displays the command to be executed and asks for user confirmation (y/n).\n find . -type f -name \"*.bak\" | xargs -p rm\n\n- The '-d' option sets the delimiter (spaces by default):\n ls | xargs -n 1 (Files/directories with spaces are a problem.)\n ls | xargs -n 1 -d \\n (Uses new line as delimiter and problem solved!)\n \n- xargs can print (-a) the contents of a file to stdout. We can use '-p' to prompt for 'y/n' before executing. We can use '-r' to only execute if stdin is not empty.\n xargs -a 1.txt\n xargs -p -a 1.txt\n xargs -r -p -a 1.txt\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!", "'xargs' - execute command lines from standard input - Video Man Pages", "tUkQcvytVtw", 589, false, "https://www.youtube.com/watch?v=tUkQcvytVtw", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022800_'xargs' - execute command lines from standard input - Video Man Pages.mp4", false, 35, ~U[2026-02-28 14:01:30Z]] 06:08:32.988 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=242.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] 06:08:32.996 [debug] QUERY OK source="media_items" db=8.0ms queue=0.1ms idle=16.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 14:00:25Z], 35] 06:08:33.001 [debug] QUERY OK source="media_items" db=3.2ms idle=24.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" ["Ever had a computer chair or office chair that was no longer able to maintain its height? There's a few DIY fixes that involve cutting PVC pipe and using metal clamps, but if you're like me, you probably would prefer a ready-made, out-of-the-box fix. I found a cheap product that works!\n\n► https://amzn.to/3ZWguh4 - Office Chair Hero Clamps\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!", "Cheap Fix For Sinking Computer Chairs And Office Chairs", "15bd5a77-c314-42aa-99b5-003a8688b428", "I_urqL2bEX8", 212, false, "https://www.youtube.com/watch?v=I_urqL2bEX8", 2, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022600_Cheap Fix For Sinking Computer Chairs And Office Chairs.mp4", false, false, false, 35, [], 98, ~U[2026-02-26 14:00:25Z], ~U[2026-03-01 12:08:32Z], ~U[2026-03-01 12:08:32Z], "Ever had a computer chair or office chair that was no longer able to maintain its height? There's a few DIY fixes that involve cutting PVC pipe and using metal clamps, but if you're like me, you probably would prefer a ready-made, out-of-the-box fix. I found a cheap product that works!\n\n► https://amzn.to/3ZWguh4 - Office Chair Hero Clamps\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!", "Cheap Fix For Sinking Computer Chairs And Office Chairs", "I_urqL2bEX8", 212, false, "https://www.youtube.com/watch?v=I_urqL2bEX8", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022600_Cheap Fix For Sinking Computer Chairs And Office Chairs.mp4", false, 35, ~U[2026-02-26 14:00:25Z]] 06:08:33.003 [debug] QUERY OK source="sources" db=1.6ms queue=0.1ms 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" = ?) [35] 06:08:33.012 [debug] QUERY OK source="media_items" db=8.0ms idle=17.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-23 14:00:50Z], 35] 06:08:33.019 [debug] QUERY OK source="media_items" db=5.8ms idle=24.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" ["KaOS is an independent, built from-scratch Linux distribution, that for many years was built using KDE Plasma, but they've now dropped Plasma in favor of Niri wth the Noctalia shell.\n\nREFERENCED:\n► https://kaosx.us/\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!", "KaOS Ditches KDE Plasma For Niri", "0e642240-9d56-415f-a3b7-6c42025a0f4f", "XOmc0Q_NX-o", 1243, false, "https://www.youtube.com/watch?v=XOmc0Q_NX-o", 3, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022300_KaOS Ditches KDE Plasma For Niri.mp4", false, false, false, 35, [], 98, ~U[2026-02-23 14:00:50Z], ~U[2026-03-01 12:08:33Z], ~U[2026-03-01 12:08:33Z], "KaOS is an independent, built from-scratch Linux distribution, that for many years was built using KDE Plasma, but they've now dropped Plasma in favor of Niri wth the Noctalia shell.\n\nREFERENCED:\n► https://kaosx.us/\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!", "KaOS Ditches KDE Plasma For Niri", "XOmc0Q_NX-o", 1243, false, "https://www.youtube.com/watch?v=XOmc0Q_NX-o", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022300_KaOS Ditches KDE Plasma For Niri.mp4", false, 35, ~U[2026-02-23 14:00:50Z]] 06:08:33.021 [debug] QUERY OK source="sources" db=1.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 06:08:33.029 [debug] QUERY OK source="media_items" db=7.6ms queue=0.1ms idle=20.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 14:00:27Z], 35] 06:08:33.033 [debug] QUERY OK source="media_items" db=3.0ms idle=26.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 'pacman' package manager is one of the major distinguishing features of Arch Linux, but it does have issues on occasion, such as becoming really slow when installing software or updating the system. But these issues are easily fixed.\n\nREFERENCED:\n► https://wiki.archlinux.org/title/Pacman\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!", "Pacman Slow In Arch Linux? Here's The Fix!", "344cb592-164a-4848-803d-84ac94348e4f", "KcHcQHl8U8k", 371, false, "https://www.youtube.com/watch?v=KcHcQHl8U8k", 4, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022000_Pacman Slow In Arch Linux? Here's The Fix!.mp4", false, false, false, 35, [], 98, ~U[2026-02-20 14:00:27Z], ~U[2026-03-01 12:08:33Z], ~U[2026-03-01 12:08:33Z], "The 'pacman' package manager is one of the major distinguishing features of Arch Linux, but it does have issues on occasion, such as becoming really slow when installing software or updating the system. But these issues are easily fixed.\n\nREFERENCED:\n► https://wiki.archlinux.org/title/Pacman\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!", "Pacman Slow In Arch Linux? Here's The Fix!", "KcHcQHl8U8k", 371, false, "https://www.youtube.com/watch?v=KcHcQHl8U8k", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e022000_Pacman Slow In Arch Linux? Here's The Fix!.mp4", false, 35, ~U[2026-02-20 14:00:27Z]] 06:08:33.035 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=21.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:08:33.043 [debug] QUERY OK source="media_items" db=7.5ms idle=16.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-16 14:00:11Z], 35] 06:08:33.047 [debug] QUERY OK source="media_items" db=3.0ms idle=22.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" ["Today, I'm taking a look at the latest release of iDeal OS, based on MX Linux 25.1 and Debian 13.3 Trixie, with KDE Plasma 6 desktop environment.\n\nREFERENCED:\n► https://ideal-os.xyz/\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 First Look AT iDeal OS", "50ff3767-6d2b-45f7-a034-06b953142c2f", "7HW1c-_mrrg", 1457, false, "https://www.youtube.com/watch?v=7HW1c-_mrrg", 5, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e021600_A Quick First Look AT iDeal OS.mp4", false, false, false, 35, [], 98, ~U[2026-02-16 14:00:11Z], ~U[2026-03-01 12:08:33Z], ~U[2026-03-01 12:08:33Z], "Today, I'm taking a look at the latest release of iDeal OS, based on MX Linux 25.1 and Debian 13.3 Trixie, with KDE Plasma 6 desktop environment.\n\nREFERENCED:\n► https://ideal-os.xyz/\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 First Look AT iDeal OS", "7HW1c-_mrrg", 1457, false, "https://www.youtube.com/watch?v=7HW1c-_mrrg", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e021600_A Quick First Look AT iDeal OS.mp4", false, 35, ~U[2026-02-16 14:00:11Z]] 06:08:33.048 [debug] QUERY OK source="sources" db=1.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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 06:08:33.057 [debug] QUERY OK source="media_items" db=7.8ms queue=0.1ms idle=16.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-13 14:01:26Z], 35] 06:08:33.061 [debug] QUERY OK source="media_items" db=3.1ms idle=22.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" ["On this episode of Hey DT:\n\n0:00 Intro\n0:18 What do you think about Niri?\n3:00 I know that you're not bald, but why are you wider now?\n5:41 How do I properly erase everything on my SSD? Complete wipe.\n7:43 Are you really editing videos in one take?\n9:25 It's been 5 years since your last Guix video.\n11:52 Do you have any footage of you using it (Kensington Orbit Trackball)?\n12:44 Why don't you mount your /home separately? Like from a btrfs subvolume?\n14:55 Don't you think you make linux more complicated and elitist?\n23:44 Thanks to Patrons\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!", "Hey, DT! You're Not Bald...But You Are Wide! (Plus Other Comments)", "3116f581-6eb8-4c5f-b9e2-d218ed3d677e", "uGJ1Nao0E1Q", 1500, false, "https://www.youtube.com/watch?v=uGJ1Nao0E1Q", 6, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e021300_Hey, DT! You're Not Bald...But You Are Wide! (Plus Other Comments).mp4", false, false, false, 35, [], 98, ~U[2026-02-13 14:01:26Z], ~U[2026-03-01 12:08:33Z], ~U[2026-03-01 12:08:33Z], "On this episode of Hey DT:\n\n0:00 Intro\n0:18 What do you think about Niri?\n3:00 I know that you're not bald, but why are you wider now?\n5:41 How do I properly erase everything on my SSD? Complete wipe.\n7:43 Are you really editing videos in one take?\n9:25 It's been 5 years since your last Guix video.\n11:52 Do you have any footage of you using it (Kensington Orbit Trackball)?\n12:44 Why don't you mount your /home separately? Like from a btrfs subvolume?\n14:55 Don't you think you make linux more complicated and elitist?\n23:44 Thanks to Patrons\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!", "Hey, DT! You're Not Bald...But You Are Wide! (Plus Other Comments)", "uGJ1Nao0E1Q", 1500, false, "https://www.youtube.com/watch?v=uGJ1Nao0E1Q", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e021300_Hey, DT! You're Not Bald...But You Are Wide! (Plus Other Comments).mp4", false, 35, ~U[2026-02-13 14:01:26Z]] 06:08:33.063 [debug] QUERY OK source="sources" db=1.2ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 06:08:33.071 [debug] QUERY OK source="media_items" db=7.6ms idle=16.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-10 16:30:47Z], 35] 06:08:33.075 [debug] QUERY OK source="media_items" db=3.1ms idle=22.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" ["How to install Arch Linux via the command line installation process. I will use UEFI, btrfs, zram, and install a popular Wayland compositor (niri). \n\nNOTE:\nThis video was re-uploaded in order to correct a major mistake (by omission) made in the first version of this video. I did not run the command to create the 'fstab' file. Oops! The solution is to make the /mnt/etc directory (mkdir -p /mnt/etc) and then run the 'gensftab' command (full command in the pinned comment below).\n\nREFERENCED:\n► https://wiki.archlinux.org/title/Installation_guide\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!", "An Arch Linux Installation Guide (2026)", "4fb5ce21-fac7-4c0a-87ff-1e3eae1c4ed1", "BUYFe5ejxfo", 1439, false, "https://www.youtube.com/watch?v=BUYFe5ejxfo", 7, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e021000_An Arch Linux Installation Guide (2026).mp4", false, false, false, 35, [], 98, ~U[2026-02-10 16:30:47Z], ~U[2026-03-01 12:08:33Z], ~U[2026-03-01 12:08:33Z], "How to install Arch Linux via the command line installation process. I will use UEFI, btrfs, zram, and install a popular Wayland compositor (niri). \n\nNOTE:\nThis video was re-uploaded in order to correct a major mistake (by omission) made in the first version of this video. I did not run the command to create the 'fstab' file. Oops! The solution is to make the /mnt/etc directory (mkdir -p /mnt/etc) and then run the 'gensftab' command (full command in the pinned comment below).\n\nREFERENCED:\n► https://wiki.archlinux.org/title/Installation_guide\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!", "An Arch Linux Installation Guide (2026)", "BUYFe5ejxfo", 1439, false, "https://www.youtube.com/watch?v=BUYFe5ejxfo", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e021000_An Arch Linux Installation Guide (2026).mp4", false, 35, ~U[2026-02-10 16:30:47Z]] 06:08:33.077 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=18.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] 06:08:33.086 [debug] QUERY OK source="media_items" db=8.7ms queue=0.1ms idle=16.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-06 14:01:07Z], 35] 06:08:33.090 [debug] QUERY OK source="media_items" db=2.9ms idle=23.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" ["Introducing the new Xero Arch Installer, which is a beautiful, streamlined Arch Linux installer with a easy-to-use, modern TUI interface.\n\nREFERENCED:\n► https://github.com/xerolinux/XeroInstall\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!", "Transform Arch Linux Into XeroLinux", "1afc1aaa-d7fd-46c1-bcd0-06e7cd44466d", "eJag0014isw", 908, false, "https://www.youtube.com/watch?v=eJag0014isw", 8, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e020600_Transform Arch Linux Into XeroLinux.mp4", false, false, false, 35, [], 98, ~U[2026-02-06 14:01:07Z], ~U[2026-03-01 12:08:33Z], ~U[2026-03-01 12:08:33Z], "Introducing the new Xero Arch Installer, which is a beautiful, streamlined Arch Linux installer with a easy-to-use, modern TUI interface.\n\nREFERENCED:\n► https://github.com/xerolinux/XeroInstall\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!", "Transform Arch Linux Into XeroLinux", "eJag0014isw", 908, false, "https://www.youtube.com/watch?v=eJag0014isw", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e020600_Transform Arch Linux Into XeroLinux.mp4", false, 35, ~U[2026-02-06 14:01:07Z]] 06:08:33.092 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=19.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 06:08:33.100 [debug] QUERY OK source="media_items" db=7.8ms idle=17.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-02 14:00:44Z], 35] 06:08:33.104 [debug] QUERY OK source="media_items" db=3.0ms queue=0.1ms idle=24.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" ["After a severe winter storm, I've spent the last 8 days without power. And that got me thinking...\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!", "Digital Detox And Being Self Sufficient", "fe969d07-58df-4f4f-a924-1f75dc75ce61", "RQppXZ6H-J0", 1067, false, "https://www.youtube.com/watch?v=RQppXZ6H-J0", 9, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e020200_Digital Detox And Being Self Sufficient.mp4", false, false, false, 35, [], 98, ~U[2026-02-02 14:00:44Z], ~U[2026-03-01 12:08:33Z], ~U[2026-03-01 12:08:33Z], "After a severe winter storm, I've spent the last 8 days without power. And that got me thinking...\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!", "Digital Detox And Being Self Sufficient", "RQppXZ6H-J0", 1067, false, "https://www.youtube.com/watch?v=RQppXZ6H-J0", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e020200_Digital Detox And Being Self Sufficient.mp4", false, 35, ~U[2026-02-02 14:00:44Z]] 06:08:33.106 [debug] QUERY OK source="sources" db=1.2ms idle=18.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:08:33.115 [debug] QUERY OK source="media_items" db=8.6ms queue=0.1ms idle=16.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-30 14:01:13Z], 35] 06:08:33.120 [debug] QUERY OK source="media_items" db=3.3ms queue=0.1ms idle=23.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 quick update after the ice storm that has left me without power for several days.\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!", "Not Bald Boomer Rants About Bad Weather", "da7e7420-d650-4d15-9ab2-3c65b76b6dbf", "iN-J51qDzpk", 216, false, "https://www.youtube.com/watch?v=iN-J51qDzpk", 10, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e013000_Not Bald Boomer Rants About Bad Weather.mp4", false, false, false, 35, [], 98, ~U[2026-01-30 14:01:13Z], ~U[2026-03-01 12:08:33Z], ~U[2026-03-01 12:08:33Z], "A quick update after the ice storm that has left me without power for several days.\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!", "Not Bald Boomer Rants About Bad Weather", "iN-J51qDzpk", 216, false, "https://www.youtube.com/watch?v=iN-J51qDzpk", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e013000_Not Bald Boomer Rants About Bad Weather.mp4", false, 35, ~U[2026-01-30 14:01:13Z]] 06:08:33.122 [debug] QUERY OK source="sources" db=1.2ms queue=0.2ms idle=19.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 06:08:33.130 [debug] QUERY OK source="media_items" db=7.8ms idle=17.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 14:00:25Z], 35] 06:08:33.134 [debug] QUERY OK source="media_items" db=2.7ms idle=24.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" ["Xonsh (sounds like \"consh\") is a modern, full-featured and cross-platform python shell. I recently switched to using Xonsh as my default user shell, but I ran into a big problem with it, mainly because I installed it the wrong way!\n\nREFERENCED:\n► https://xon.sh/\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!", "My Xonsh Shell Experiment Failed! (...Kind Of)", "39ab9a95-16fe-4a98-84cb-f86a8026d3e0", "Iif4GpL6yrQ", 364, false, "https://www.youtube.com/watch?v=Iif4GpL6yrQ", 11, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e012600_My Xonsh Shell Experiment Failed! (...Kind Of).mp4", false, false, false, 35, [], 98, ~U[2026-01-26 14:00:25Z], ~U[2026-03-01 12:08:33Z], ~U[2026-03-01 12:08:33Z], "Xonsh (sounds like \"consh\") is a modern, full-featured and cross-platform python shell. I recently switched to using Xonsh as my default user shell, but I ran into a big problem with it, mainly because I installed it the wrong way!\n\nREFERENCED:\n► https://xon.sh/\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!", "My Xonsh Shell Experiment Failed! (...Kind Of)", "Iif4GpL6yrQ", 364, false, "https://www.youtube.com/watch?v=Iif4GpL6yrQ", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e012600_My Xonsh Shell Experiment Failed! (...Kind Of).mp4", false, 35, ~U[2026-01-26 14:00:25Z]] 06:08:33.136 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=19.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:08:33.144 [debug] QUERY OK source="media_items" db=8.0ms queue=0.1ms idle=17.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-23 14:00:02Z], 35] 06:08:33.149 [debug] QUERY OK source="media_items" db=3.1ms queue=0.2ms idle=23.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" ["DankMaterialShell is a complete desktop shell for niri, Hyprland, MangoWC, Sway, labwc, Scroll, and other Wayland compositors. It replaces waybar, swaylock, swayidle, mako, fuzzel, polkit, and everything else you'd normally stitch together to make a desktop.\n\nREFERENCED:\n► https://github.com/AvengeMedia/DankMaterialShell\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!", "The Dank Material Shell - A Wayland Desktop Suite", "8c35add0-d5c3-480a-a759-d9eff3a090fc", "1ILZevPGgJw", 876, false, "https://www.youtube.com/watch?v=1ILZevPGgJw", 12, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e012300_The Dank Material Shell - A Wayland Desktop Suite.mp4", false, false, false, 35, [], 98, ~U[2026-01-23 14:00:02Z], ~U[2026-03-01 12:08:33Z], ~U[2026-03-01 12:08:33Z], "DankMaterialShell is a complete desktop shell for niri, Hyprland, MangoWC, Sway, labwc, Scroll, and other Wayland compositors. It replaces waybar, swaylock, swayidle, mako, fuzzel, polkit, and everything else you'd normally stitch together to make a desktop.\n\nREFERENCED:\n► https://github.com/AvengeMedia/DankMaterialShell\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!", "The Dank Material Shell - A Wayland Desktop Suite", "1ILZevPGgJw", 876, false, "https://www.youtube.com/watch?v=1ILZevPGgJw", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e012300_The Dank Material Shell - A Wayland Desktop Suite.mp4", false, 35, ~U[2026-01-23 14:00:02Z]] 06:08:33.151 [debug] QUERY OK source="sources" db=1.1ms queue=0.2ms 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" = ?) [35] 06:08:33.160 [debug] QUERY OK source="media_items" db=8.5ms 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[2026-01-19 14:00:18Z], 35] 06:08:33.164 [debug] QUERY OK source="media_items" db=3.0ms idle=24.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 switched to the Kensington Expert trackball about 5 years ago. I even did a video about it (https://www.youtube.com/watch?v=VaG4sCXTkrw). But recently I have been having a bit of hand pain, and I suspected that the mouse was the problem. So...I decided to try a different Kensington trackball--the Orbit! \n\nREFERENCED:\n► https://amzn.to/45eSLvF - Kensington Orbit Trackball Mouse\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!", "The Kensington Orbit Trackball Mouse (Will It Solve My Hand Pain?)", "e174fac3-91b1-4f48-a54e-15972d087762", "BZqHn8w0MGg", 701, false, "https://www.youtube.com/watch?v=BZqHn8w0MGg", 13, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011900_The Kensington Orbit Trackball Mouse (Will It Solve My Hand Pain?).mp4", false, false, false, 35, [], 98, ~U[2026-01-19 14:00:18Z], ~U[2026-03-01 12:08:33Z], ~U[2026-03-01 12:08:33Z], "I switched to the Kensington Expert trackball about 5 years ago. I even did a video about it (https://www.youtube.com/watch?v=VaG4sCXTkrw). But recently I have been having a bit of hand pain, and I suspected that the mouse was the problem. So...I decided to try a different Kensington trackball--the Orbit! \n\nREFERENCED:\n► https://amzn.to/45eSLvF - Kensington Orbit Trackball Mouse\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!", "The Kensington Orbit Trackball Mouse (Will It Solve My Hand Pain?)", "BZqHn8w0MGg", 701, false, "https://www.youtube.com/watch?v=BZqHn8w0MGg", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011900_The Kensington Orbit Trackball Mouse (Will It Solve My Hand Pain?).mp4", false, 35, ~U[2026-01-19 14:00:18Z]] 06:08:33.166 [debug] QUERY OK source="sources" db=1.4ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 06:08:33.175 [debug] QUERY OK source="media_items" db=8.4ms queue=0.1ms idle=18.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-16 14:01:41Z], 35] 06:08:33.179 [debug] QUERY OK source="media_items" db=3.0ms idle=24.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'm taking a quick first look at Niri, which is a scrollable-tiling Wayland compositor.\n\nREFERENCED:\n► https://github.com/YaLTeR/niri/\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 First Look At The Niri Window Manager", "c39f518e-7477-4808-8576-f16456688734", "uiXiD5foFCI", 1003, false, "https://www.youtube.com/watch?v=uiXiD5foFCI", 14, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011600_A Quick First Look At The Niri Window Manager.mp4", false, false, false, 35, [], 98, ~U[2026-01-16 14:01:41Z], ~U[2026-03-01 12:08:33Z], ~U[2026-03-01 12:08:33Z], "I'm taking a quick first look at Niri, which is a scrollable-tiling Wayland compositor.\n\nREFERENCED:\n► https://github.com/YaLTeR/niri/\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 First Look At The Niri Window Manager", "uiXiD5foFCI", 1003, false, "https://www.youtube.com/watch?v=uiXiD5foFCI", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011600_A Quick First Look At The Niri Window Manager.mp4", false, 35, ~U[2026-01-16 14:01:41Z]] 06:08:33.181 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=19.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] 06:08:33.190 [debug] QUERY OK source="media_items" db=8.4ms idle=17.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-12 14:01:02Z], 35] 06:08:33.194 [debug] QUERY OK source="media_items" db=3.0ms idle=24.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 is a new \"software movement\" that seems to be gaining ground. It's the \"fair source\" movement, and it's quite discriminatory in nature. Sadly, I see some within the FOSS community actually advocating for \"fair source.\"\n\nREFERENCED:\n► https://fair.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!", "Fair Source Software Is Incredibly Unfair", "568fced3-3ebe-469a-b7b4-9fe011ede089", "V_L0MNy8Mpg", 929, false, "https://www.youtube.com/watch?v=V_L0MNy8Mpg", 15, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011200_Fair Source Software Is Incredibly Unfair.mp4", false, false, false, 35, [], 98, ~U[2026-01-12 14:01:02Z], ~U[2026-03-01 12:08:33Z], ~U[2026-03-01 12:08:33Z], "There is a new \"software movement\" that seems to be gaining ground. It's the \"fair source\" movement, and it's quite discriminatory in nature. Sadly, I see some within the FOSS community actually advocating for \"fair source.\"\n\nREFERENCED:\n► https://fair.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!", "Fair Source Software Is Incredibly Unfair", "V_L0MNy8Mpg", 929, false, "https://www.youtube.com/watch?v=V_L0MNy8Mpg", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e011200_Fair Source Software Is Incredibly Unfair.mp4", false, 35, ~U[2026-01-12 14:01:02Z]] 06:08:33.196 [debug] QUERY OK source="sources" db=1.3ms idle=19.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 06:08:33.205 [debug] QUERY OK source="media_items" db=8.0ms queue=0.1ms idle=17.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-08 14:00:13Z], 35] 06:08:33.209 [debug] QUERY OK source="media_items" db=2.9ms idle=23.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've been using Qtile on-and-off again for probably a decade or longer. Qtile is a full-featured, hackable tiling window manager written and configured in Python. It was originally written for X11 but it does have a Wayland session. Let's try it out!\n\nREFERENCED:\n► https://qtile.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!", "Qtile On Wayland...It Kinda Works!", "f4cddd5a-bffa-47eb-8d24-bfc9506a0c76", "8YdBCIqhzs8", 1048, false, "https://www.youtube.com/watch?v=8YdBCIqhzs8", 16, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010800_Qtile On Wayland...It Kinda Works!.mp4", false, false, false, 35, [], 98, ~U[2026-01-08 14:00:13Z], ~U[2026-03-01 12:08:33Z], ~U[2026-03-01 12:08:33Z], "I've been using Qtile on-and-off again for probably a decade or longer. Qtile is a full-featured, hackable tiling window manager written and configured in Python. It was originally written for X11 but it does have a Wayland session. Let's try it out!\n\nREFERENCED:\n► https://qtile.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!", "Qtile On Wayland...It Kinda Works!", "8YdBCIqhzs8", 1048, false, "https://www.youtube.com/watch?v=8YdBCIqhzs8", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010800_Qtile On Wayland...It Kinda Works!.mp4", false, 35, ~U[2026-01-08 14:00:13Z]] 06:08:33.210 [debug] QUERY OK source="sources" db=1.2ms idle=18.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:08:33.219 [debug] QUERY OK source="media_items" db=8.6ms idle=16.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-04 14:00:07Z], 35] 06:08:33.223 [debug] QUERY OK source="media_items" db=2.8ms idle=23.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" ["We have entered a new age of programming. It is the age of \"vibe coding,\" which is using A.I. tools like ChatGPT or Gemini to write your programs.\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!", "Vibe Coding Is The Evolution Of Programming", "2d8d166f-6de0-4bec-a7de-d1a62cd89692", "2wfs0A94_T4", 870, false, "https://www.youtube.com/watch?v=2wfs0A94_T4", 17, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010400_Vibe Coding Is The Evolution Of Programming.mp4", false, false, false, 35, [], 98, ~U[2026-01-04 14:00:07Z], ~U[2026-03-01 12:08:33Z], ~U[2026-03-01 12:08:33Z], "We have entered a new age of programming. It is the age of \"vibe coding,\" which is using A.I. tools like ChatGPT or Gemini to write your programs.\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!", "Vibe Coding Is The Evolution Of Programming", "2wfs0A94_T4", 870, false, "https://www.youtube.com/watch?v=2wfs0A94_T4", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010400_Vibe Coding Is The Evolution Of Programming.mp4", false, 35, ~U[2026-01-04 14:00:07Z]] 06:08:33.225 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=18.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 06:08:33.234 [debug] QUERY OK source="media_items" db=8.2ms queue=0.1ms idle=17.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 14:01:04Z], 35] 06:08:33.239 [debug] QUERY OK source="media_items" db=4.0ms 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" ["The 'awk command' is really an entire programming language used for working with files and text.\n\n- Print a file (similar to 'cat'):\n awk '{print}' path/to/file\n OR\n awk '{print $0}' path/to/file\n\n- Print the 2nd field of each line:\n awk '{print $2}' path/to/file\n\n- Print the last field of each line:\n awk '{print $NF}' path/to/file\n\n- Search for lines containing 'string' and print the second field of those lines:\n awk '/string/ {print $2}' path/to/file\n\n- Use a different field separator (instead of space) and print 1st and 7th fields with a TAB in between:\n awk -F \":\" '{print $1 \"\\t\" $7}' /etc/passwd\n\n- Find a specific string in any column:\n ps -ef | awk '{ if($NF == \"/usr/bin/pipewire\") print $0};'\n NOTE We search if the last field is '/usr/bin/pipewire' and print the line.\n\n- Search 1st field if it starts with 'b' or 'c', then prints the line:\n awk '$1 ~ /^[b,c]/ {print $0}' .bashrc\n NOTE The '~' character is the regex match operator.\n\n- Use the 'substr' function to print each record from the 2nd character onward:\n awk '{print substr($0, 2)}' .bashrc\n NOTE It essentially prints the document but omits the first character of each line.\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!", "'awk' - a programming language for working on files - Video Man Pages", "65566c79-0a35-49fe-9880-b0c60fa30d32", "cK1JMK7Ckq0", 491, false, "https://www.youtube.com/watch?v=cK1JMK7Ckq0", 18, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010100_'awk' - a programming language for working on files - Video Man Pages.mp4", false, false, false, 35, [], 98, ~U[2026-01-01 14:01:04Z], ~U[2026-03-01 12:08:33Z], ~U[2026-03-01 12:08:33Z], "The 'awk command' is really an entire programming language used for working with files and text.\n\n- Print a file (similar to 'cat'):\n awk '{print}' path/to/file\n OR\n awk '{print $0}' path/to/file\n\n- Print the 2nd field of each line:\n awk '{print $2}' path/to/file\n\n- Print the last field of each line:\n awk '{print $NF}' path/to/file\n\n- Search for lines containing 'string' and print the second field of those lines:\n awk '/string/ {print $2}' path/to/file\n\n- Use a different field separator (instead of space) and print 1st and 7th fields with a TAB in between:\n awk -F \":\" '{print $1 \"\\t\" $7}' /etc/passwd\n\n- Find a specific string in any column:\n ps -ef | awk '{ if($NF == \"/usr/bin/pipewire\") print $0};'\n NOTE We search if the last field is '/usr/bin/pipewire' and print the line.\n\n- Search 1st field if it starts with 'b' or 'c', then prints the line:\n awk '$1 ~ /^[b,c]/ {print $0}' .bashrc\n NOTE The '~' character is the regex match operator.\n\n- Use the 'substr' function to print each record from the 2nd character onward:\n awk '{print substr($0, 2)}' .bashrc\n NOTE It essentially prints the document but omits the first character of each line.\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!", "'awk' - a programming language for working on files - Video Man Pages", "cK1JMK7Ckq0", 491, false, "https://www.youtube.com/watch?v=cK1JMK7Ckq0", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2026/s2026e010100_'awk' - a programming language for working on files - Video Man Pages.mp4", false, 35, ~U[2026-01-01 14:01:04Z]] 06:08:33.241 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms 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" = ?) [35] 06:08:33.250 [debug] QUERY OK source="media_items" db=8.5ms idle=18.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-30 14:00:16Z], 35] 06:08:33.263 [debug] QUERY OK source="media_items" db=10.9ms idle=25.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 'cut' command is used to cut sections from lines of text.\n\n- Print the third character (-c) on each line:\n cut -c 3 /path/to/file\n command | cut -c 3\n\n- Print characters 5-10 of each line of a file:\n cut -c 5-10 path/to/file\n\n- Split each line using a delimiter into fields, and print fields (-f) 2 and 5:\n cut -f 2,5 path/to/file\n NOTE The default delimiter is the TAB.\n\n- Split each line using a specified delimiter (-d) and print field 4 and all fields after:\n cut -d \":\" -f 4- /etc/passwd\n NOTE The /etc/passwd file uses colons to separate fields of information.\n\n- Split each line using a specified delimiter (-d) and print field 4 and all fields previous:\n cut -d \":\" -f -4 /etc/passwd\n\n- Do not print lines that do not contain the delimiter (-s):\n cut -d \" \" -f -4 -s .bashrc\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!", "'cut' - cut sections from lines of text - Video Man Pages", "7c24b471-4951-428c-90f4-725e2bc13f19", "9hoTL0GP2uQ", 283, false, "https://www.youtube.com/watch?v=9hoTL0GP2uQ", 19, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e123000_'cut' - cut sections from lines of text - Video Man Pages.mp4", false, false, false, 35, [], 98, ~U[2025-12-30 14:00:16Z], ~U[2026-03-01 12:08:33Z], ~U[2026-03-01 12:08:33Z], "The 'cut' command is used to cut sections from lines of text.\n\n- Print the third character (-c) on each line:\n cut -c 3 /path/to/file\n command | cut -c 3\n\n- Print characters 5-10 of each line of a file:\n cut -c 5-10 path/to/file\n\n- Split each line using a delimiter into fields, and print fields (-f) 2 and 5:\n cut -f 2,5 path/to/file\n NOTE The default delimiter is the TAB.\n\n- Split each line using a specified delimiter (-d) and print field 4 and all fields after:\n cut -d \":\" -f 4- /etc/passwd\n NOTE The /etc/passwd file uses colons to separate fields of information.\n\n- Split each line using a specified delimiter (-d) and print field 4 and all fields previous:\n cut -d \":\" -f -4 /etc/passwd\n\n- Do not print lines that do not contain the delimiter (-s):\n cut -d \" \" -f -4 -s .bashrc\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!", "'cut' - cut sections from lines of text - Video Man Pages", "9hoTL0GP2uQ", 283, false, "https://www.youtube.com/watch?v=9hoTL0GP2uQ", "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e123000_'cut' - cut sections from lines of text - Video Man Pages.mp4", false, 35, ~U[2025-12-30 14:00:16Z]] 06:08:33.265 [debug] QUERY OK source="sources" db=1.5ms idle=29.5ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-01 12:08:33Z], ~U[2026-03-01 12:08:33Z], 35] 06:08:33.274 [debug] QUERY OK source="media_items" db=8.6ms queue=0.1ms idle=27.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")))) [35] 06:08:33.284 [debug] QUERY OK source="media_items" db=8.8ms queue=0.1ms idle=33.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")))) [35] 06:08:33.286 [debug] QUERY OK source="media_items" db=1.4ms idle=33.9ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [35] 06:08:33.292 [debug] QUERY OK source="tasks" db=1.7ms idle=15.6ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189179, 35, ~U[2026-03-01 12:08:33Z], ~U[2026-03-01 12:08:33Z]] 06:08:33.293 [info] {"args":{"id":35},"id":189069,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":124990165,"event":"job:stop","queue_time":186238,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 06:08:42.242 [info] {"source":"oban","duration":16130,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:09:00.168 [info] {"source":"oban","duration":323,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:09:12.258 [info] {"source":"oban","duration":15011,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 06:09:38.005 [info] GET /sources/43/media/2358044/force_download 06:09:38.006 [debug] QUERY OK source="settings" db=0.2ms idle=1227.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:09:38.006 [debug] QUERY OK source="settings" db=0.1ms idle=281.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:09:38.007 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:09:38.007 [error] #PID<0.167225.0> running PinchflatWeb.Endpoint (connection #PID<0.167224.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/43/media/2358044/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/2358044/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167224.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2358044/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 37618}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167225.0>, params: %{}, path_info: ["sources", "43", "media", "2358044", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://tubesync.cochrun.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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/43/media/2358044/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJi2YEep3QOw-CAAUzNB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167224.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2358044/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 37618}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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/2358044/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167224.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/media/2358044/force_download", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 37618}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.182", "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.167225.0>, params: %{}, path_info: ["sources", "43", "media", "2358044", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://tubesync.cochrun.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.182"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto (truncated) 06:09:42.275 [info] {"source":"oban","duration":16090,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 06:09:56.769 [info] {"args":{"id":30},"id":189128,"meta":{},"system_time":1772366996769655283,"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"]} 06:09:56.770 [debug] QUERY OK source="sources" db=0.8ms idle=991.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:09:56.771 [debug] QUERY OK source="settings" db=0.2ms idle=992.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:09:56.779 [debug] QUERY OK source="media_items" db=7.9ms idle=992.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] 06:09:56.780 [debug] QUERY OK source="media_items" db=0.8ms idle=16.5ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [30] 06:09:56.781 [debug] QUERY OK source="media_profiles" db=0.2ms idle=11.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] 06:09:56.781 [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 [] 06:09:56.782 [debug] QUERY OK source="settings" db=0.1ms idle=10.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:09:56.789 [debug] QUERY OK source="media_items" db=5.8ms idle=4.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [30] 06:09:56.792 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 06:09:56.792 [debug] Current batch of media processed. Will check again in 1000ms 06:09:56.792 [debug] QUERY OK source="settings" db=0.1ms idle=11.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:09:56.793 [debug] QUERY OK source="settings" db=0.1ms idle=11.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:09:56.793 [debug] QUERY OK source="settings" db=0.1ms idle=11.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:09:56.793 [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/dc/46/dc460851f107b42d20b6a6998ac2477a699655d00082bc199422f87d4fc7742f.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/ff/50/ff50acd85d85857709e42b8b1d15d43fd75058cf4f8313bdad5e455d73ce0008.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 06:09:57.793 [debug] Current batch of media processed. Will check again in 1000ms 06:09:58.794 [debug] Current batch of media processed. Will check again in 1000ms 06:09:59.795 [debug] Current batch of media processed. Will check again in 1000ms 06:10:00.169 [info] {"source":"oban","duration":336,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:10:00.796 [debug] Current batch of media processed. Will check again in 1000ms 06:10:01.797 [debug] Current batch of media processed. Will check again in 1000ms 06:10:02.798 [debug] Current batch of media processed. Will check again in 1000ms 06:10:03.799 [debug] Current batch of media processed. Will check again in 1000ms 06:10:04.800 [debug] Current batch of media processed. Will check again in 1000ms 06:10:05.802 [debug] Current batch of media processed. Will check again in 1000ms 06:10:06.802 [debug] Current batch of media processed. Will check again in 1000ms 06:10:07.803 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "RAM Pricing is absolutely insane, storage is following along, nobody is buying computers anymore and the industry is an absolute mess\n\n==========Support The Channel==========\n► Patreon: https://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#SteamMachine #linux #Computer #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" => 1120, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022800_No One Is Buying Computers Anymore.mp4", "id" => "iPyTLOySnSc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=iPyTLOySnSc", "playlist_index" => 1, "timestamp" => 1772296216, "title" => "No One Is Buying Computers Anymore", "upload_date" => "20260228"} 06:10:07.804 [debug] QUERY OK source="sources" db=0.4ms idle=1025.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] 06:10:07.805 [debug] QUERY OK source="sources" db=0.3ms idle=1026.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:10:07.816 [debug] QUERY OK source="media_items" db=11.0ms idle=1027.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 16:30:16Z], 30] 06:10:07.820 [debug] QUERY OK source="media_items" db=2.6ms idle=1033.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" ["RAM Pricing is absolutely insane, storage is following along, nobody is buying computers anymore and the industry is an absolute mess\n\n==========Support The Channel==========\n► Patreon: https://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#SteamMachine #linux #Computer #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.", "No One Is Buying Computers Anymore", "b2929635-6752-41f7-ba61-68534399c140", "iPyTLOySnSc", 1120, false, "https://www.youtube.com/watch?v=iPyTLOySnSc", 1, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022800_No One Is Buying Computers Anymore.mp4", false, false, false, 30, [], 98, ~U[2026-02-28 16:30:16Z], ~U[2026-03-01 12:10:07Z], ~U[2026-03-01 12:10:07Z], "RAM Pricing is absolutely insane, storage is following along, nobody is buying computers anymore and the industry is an absolute mess\n\n==========Support The Channel==========\n► Patreon: https://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#SteamMachine #linux #Computer #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.", "No One Is Buying Computers Anymore", "iPyTLOySnSc", 1120, false, "https://www.youtube.com/watch?v=iPyTLOySnSc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022800_No One Is Buying Computers Anymore.mp4", false, 30, ~U[2026-02-28 16:30:16Z]] 06:10:07.822 [debug] QUERY OK source="sources" db=1.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" = ?) [30] 06:10:07.822 [debug] QUERY OK source="media_profiles" db=0.5ms idle=17.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] 06:10:07.823 [debug] QUERY OK source="media_items" db=0.6ms idle=17.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 [2376369] 06:10:07.824 [debug] Current batch of media processed. Will check again in 1000ms 06:10:08.824 [debug] Current batch of media processed. Will check again in 1000ms 06:10:09.825 [debug] Current batch of media processed. Will check again in 1000ms 06:10:10.826 [debug] Current batch of media processed. Will check again in 1000ms 06:10:11.828 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "By now you probably know about Kent Overstreet's antics in the Linux kernel with BcacheFS but we're not here to talk about that today, instead we're here to talk his AI chat bot which he is convinced is sentient and feels real emotion.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWebsite: https://poc.bcachefs.org/\nWhite Paper: https://poc.bcachefs.org/paper.pdf\nThe Register: https://www.theregister.com/2026/02/25/bcachefs_creator_ai/\nReddit Post: https://www.reddit.com/r/bcachefs/comments/1rblll1/the_blog_of_an_llm_saying_its_owned_by_kent_and/\nFunny Thread: https://social.vlhl.dev/notice/B3gj1a7Xfl0evR4Hke\nIRC Logs: https://paste.xinu.at/6atmCN\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AI #LLM #Linux #LinuxKernel #FOSS #OpenSource\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 1702, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022600_BCacheFS Developer Deployed His AI Girlfriend Helper.mp4", "id" => "oOzDI3mCv58", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=oOzDI3mCv58", "playlist_index" => 2, "timestamp" => 1772144938, "title" => "BCacheFS Developer Deployed His AI Girlfriend Helper", "upload_date" => "20260226"} 06:10:11.829 [debug] QUERY OK source="sources" db=0.4ms 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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [30] 06:10:11.829 [debug] QUERY OK source="sources" db=0.2ms idle=50.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:10:11.839 [debug] QUERY OK source="media_items" db=9.4ms idle=51.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-26 22:28:58Z], 30] 06:10:11.843 [debug] QUERY OK source="media_items" db=2.7ms idle=61.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" ["By now you probably know about Kent Overstreet's antics in the Linux kernel with BcacheFS but we're not here to talk about that today, instead we're here to talk his AI chat bot which he is convinced is sentient and feels real emotion.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWebsite: https://poc.bcachefs.org/\nWhite Paper: https://poc.bcachefs.org/paper.pdf\nThe Register: https://www.theregister.com/2026/02/25/bcachefs_creator_ai/\nReddit Post: https://www.reddit.com/r/bcachefs/comments/1rblll1/the_blog_of_an_llm_saying_its_owned_by_kent_and/\nFunny Thread: https://social.vlhl.dev/notice/B3gj1a7Xfl0evR4Hke\nIRC Logs: https://paste.xinu.at/6atmCN\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AI #LLM #Linux #LinuxKernel #FOSS #OpenSource\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "BCacheFS Developer Deployed His AI Girlfriend Helper", "7ce91853-7a4f-4fae-a461-13aca05536dd", "oOzDI3mCv58", 1702, false, "https://www.youtube.com/watch?v=oOzDI3mCv58", 2, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022600_BCacheFS Developer Deployed His AI Girlfriend Helper.mp4", false, false, false, 30, [], 98, ~U[2026-02-26 22:28:58Z], ~U[2026-03-01 12:10:11Z], ~U[2026-03-01 12:10:11Z], "By now you probably know about Kent Overstreet's antics in the Linux kernel with BcacheFS but we're not here to talk about that today, instead we're here to talk his AI chat bot which he is convinced is sentient and feels real emotion.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWebsite: https://poc.bcachefs.org/\nWhite Paper: https://poc.bcachefs.org/paper.pdf\nThe Register: https://www.theregister.com/2026/02/25/bcachefs_creator_ai/\nReddit Post: https://www.reddit.com/r/bcachefs/comments/1rblll1/the_blog_of_an_llm_saying_its_owned_by_kent_and/\nFunny Thread: https://social.vlhl.dev/notice/B3gj1a7Xfl0evR4Hke\nIRC Logs: https://paste.xinu.at/6atmCN\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AI #LLM #Linux #LinuxKernel #FOSS #OpenSource\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "BCacheFS Developer Deployed His AI Girlfriend Helper", "oOzDI3mCv58", 1702, false, "https://www.youtube.com/watch?v=oOzDI3mCv58", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022600_BCacheFS Developer Deployed His AI Girlfriend Helper.mp4", false, 30, ~U[2026-02-26 22:28:58Z]] 06:10:11.843 [debug] QUERY OK source="sources" db=0.4ms idle=47.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] 06:10:11.844 [debug] QUERY OK source="media_profiles" db=0.2ms idle=15.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] 06:10:11.845 [debug] QUERY OK source="media_items" db=0.4ms idle=15.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 [2362492] 06:10:11.845 [debug] Current batch of media processed. Will check again in 1000ms 06:10:12.297 [info] {"source":"oban","duration":21150,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:10:12.805 [info] {"args":{"id":2281148},"id":189113,"meta":{},"system_time":1772367012804892132,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":11,"tags":["media_item","media_fetching","show_in_dashboard"]} 06:10:12.805 [debug] QUERY OK source="media_items" db=0.2ms idle=960.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" = ?) [2281148] 06:10:12.805 [info] User scripts lifecyle file either not present or is empty. Skipping. 06:10:12.806 [debug] QUERY OK source="sources" db=0.4ms idle=960.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] 06:10:12.807 [debug] QUERY OK source="media_profiles" db=1.1ms queue=0.1ms idle=509.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] 06:10:12.809 [debug] QUERY OK source="media_items" db=0.6ms idle=10.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 [2281148] 06:10:12.810 [debug] QUERY OK source="media_metadata" db=0.1ms idle=5.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" = ?) [2281148] 06:10:12.810 [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] 06:10:12.811 [debug] QUERY OK source="settings" db=0.2ms 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 [] 06:10:12.811 [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 [] 06:10:12.812 [debug] Running yt-dlp command for action: get_downloadable_status 06:10:12.813 [debug] QUERY OK source="settings" db=0.1ms 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 [] 06:10:12.813 [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 [] 06:10:12.814 [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 [] 06:10:12.814 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RzBuqvd_zD4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b0/e1/b0e1cfada2e34e881f29c54a745aeccaf7becb1fe5c6fa793f948eab560d4d5a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 06:10:12.846 [debug] Current batch of media processed. Will check again in 1000ms 06:10:13.847 [debug] Current batch of media processed. Will check again in 1000ms 06:10:14.848 [debug] Current batch of media processed. Will check again in 1000ms 06:10:15.851 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "For a long time Ladybird browser was going to adopt Swift lang but recently they did a port over to Rust and not just that, used AI to start off the port and this lead to a bit of controversy.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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://ladybird.org/posts/adopting-rust/\nLadybird Swift Issue: https://github.com/LadybirdBrowser/ladybird/issues/933\nPodcast Clip: https://www.youtube.com/watch?v=DSEZ2ZYLdHg\nTwitter Post: https://x.com/awesomekling/status/1822241531501162806\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Rust #Swift #Ladybird #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" => 1095, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022500_Ladybird Browser Gave Up C++ For Rust Lang.mp4", "id" => "lBd5QGjCcGc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=lBd5QGjCcGc", "playlist_index" => 3, "timestamp" => 1772037018, "title" => "Ladybird Browser Gave Up C++ For Rust Lang", "upload_date" => "20260225"} 06:10:15.852 [debug] QUERY OK source="sources" db=0.4ms idle=1072.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] 06:10:15.853 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1073.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:10:15.862 [debug] QUERY OK source="media_items" db=9.3ms idle=1074.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-25 16:30:18Z], 30] 06:10:15.866 [debug] QUERY OK source="media_items" db=2.5ms idle=1057.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" ["For a long time Ladybird browser was going to adopt Swift lang but recently they did a port over to Rust and not just that, used AI to start off the port and this lead to a bit of controversy.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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://ladybird.org/posts/adopting-rust/\nLadybird Swift Issue: https://github.com/LadybirdBrowser/ladybird/issues/933\nPodcast Clip: https://www.youtube.com/watch?v=DSEZ2ZYLdHg\nTwitter Post: https://x.com/awesomekling/status/1822241531501162806\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Rust #Swift #Ladybird #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.", "Ladybird Browser Gave Up C++ For Rust Lang", "2229fdc5-0ff2-4941-9283-9aafa5f1fb00", "lBd5QGjCcGc", 1095, false, "https://www.youtube.com/watch?v=lBd5QGjCcGc", 3, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022500_Ladybird Browser Gave Up C++ For Rust Lang.mp4", false, false, false, 30, [], 98, ~U[2026-02-25 16:30:18Z], ~U[2026-03-01 12:10:15Z], ~U[2026-03-01 12:10:15Z], "For a long time Ladybird browser was going to adopt Swift lang but recently they did a port over to Rust and not just that, used AI to start off the port and this lead to a bit of controversy.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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://ladybird.org/posts/adopting-rust/\nLadybird Swift Issue: https://github.com/LadybirdBrowser/ladybird/issues/933\nPodcast Clip: https://www.youtube.com/watch?v=DSEZ2ZYLdHg\nTwitter Post: https://x.com/awesomekling/status/1822241531501162806\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Rust #Swift #Ladybird #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.", "Ladybird Browser Gave Up C++ For Rust Lang", "lBd5QGjCcGc", 1095, false, "https://www.youtube.com/watch?v=lBd5QGjCcGc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022500_Ladybird Browser Gave Up C++ For Rust Lang.mp4", false, 30, ~U[2026-02-25 16:30:18Z]] 06:10:15.867 [debug] QUERY OK source="sources" db=0.6ms idle=57.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:10:15.868 [debug] QUERY OK source="media_profiles" db=0.4ms idle=15.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] 06:10:15.869 [debug] QUERY OK source="media_items" db=0.5ms idle=15.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 [2352916] 06:10:15.869 [debug] Current batch of media processed. Will check again in 1000ms 06:10:16.870 [debug] Current batch of media processed. Will check again in 1000ms 06:10:17.147 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RzBuqvd_zD4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b0/e1/b0e1cfada2e34e881f29c54a745aeccaf7becb1fe5c6fa793f948eab560d4d5a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] RzBuqvd_zD4: Join this channel to get access to members-only content like this video, and other exclusive perks. 06:10:17.147 [error] yt-dlp download error for media item #2281148: "ERROR: [youtube] RzBuqvd_zD4: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 06:10:17.149 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":2281148},"id":189113,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4343427,"event":"job:exception","queue_time":17546,"attempt":11,"tags":["media_item","media_fetching","show_in_dashboard"]} 06:10:17.871 [debug] Current batch of media processed. Will check again in 1000ms 06:10:18.872 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "You probably know that HDMI 2.1 is a no go on Linux with an AMD GPU, well that's only if you're an HDMI Forum member, who says you have to listen to there rules if you just reverse engineer the support.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHDMI 2.1 FRL Work: https://github.com/mkopec/linux/\nReddit Post: https://www.reddit.com/r/linux_gaming/comments/1r793et/hdmi_21_frl_looking_for_testers/\nXilinux Article: https://www.phoronix.com/news/AMDGPU-HDMI-2.1-But-Xilinx\nAMD Thread: https://gitlab.freedesktop.org/drm/amd/-/issues/1417#note_3335295\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AMD #Linux #HDMI #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" => 1021, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022400_HDMI Forum Hates This New Kernel Patch.mp4", "id" => "N53wMB9d4As", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=N53wMB9d4As", "playlist_index" => 4, "timestamp" => 1771950616, "title" => "HDMI Forum Hates This New Kernel Patch", "upload_date" => "20260224"} 06:10:18.873 [debug] QUERY OK source="sources" db=0.5ms idle=1094.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 06:10:18.874 [debug] QUERY OK source="sources" db=0.3ms idle=1055.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:10:18.885 [debug] QUERY OK source="media_items" db=10.1ms idle=96.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-24 16:30:16Z], 30] 06:10:18.888 [debug] QUERY OK source="media_items" db=2.3ms idle=106.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 probably know that HDMI 2.1 is a no go on Linux with an AMD GPU, well that's only if you're an HDMI Forum member, who says you have to listen to there rules if you just reverse engineer the support.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHDMI 2.1 FRL Work: https://github.com/mkopec/linux/\nReddit Post: https://www.reddit.com/r/linux_gaming/comments/1r793et/hdmi_21_frl_looking_for_testers/\nXilinux Article: https://www.phoronix.com/news/AMDGPU-HDMI-2.1-But-Xilinx\nAMD Thread: https://gitlab.freedesktop.org/drm/amd/-/issues/1417#note_3335295\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AMD #Linux #HDMI #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.", "HDMI Forum Hates This New Kernel Patch", "d02c0516-5785-4727-9c97-72af65a14edd", "N53wMB9d4As", 1021, false, "https://www.youtube.com/watch?v=N53wMB9d4As", 4, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022400_HDMI Forum Hates This New Kernel Patch.mp4", false, false, false, 30, [], 98, ~U[2026-02-24 16:30:16Z], ~U[2026-03-01 12:10:18Z], ~U[2026-03-01 12:10:18Z], "You probably know that HDMI 2.1 is a no go on Linux with an AMD GPU, well that's only if you're an HDMI Forum member, who says you have to listen to there rules if you just reverse engineer the support.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHDMI 2.1 FRL Work: https://github.com/mkopec/linux/\nReddit Post: https://www.reddit.com/r/linux_gaming/comments/1r793et/hdmi_21_frl_looking_for_testers/\nXilinux Article: https://www.phoronix.com/news/AMDGPU-HDMI-2.1-But-Xilinx\nAMD Thread: https://gitlab.freedesktop.org/drm/amd/-/issues/1417#note_3335295\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AMD #Linux #HDMI #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.", "HDMI Forum Hates This New Kernel Patch", "N53wMB9d4As", 1021, false, "https://www.youtube.com/watch?v=N53wMB9d4As", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022400_HDMI Forum Hates This New Kernel Patch.mp4", false, 30, ~U[2026-02-24 16:30:16Z]] 06:10:18.889 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [30] 06:10:18.889 [debug] QUERY OK source="media_profiles" db=0.3ms idle=15.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] 06:10:18.890 [debug] QUERY OK source="media_items" db=0.5ms idle=15.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 [2344980] 06:10:18.890 [debug] Current batch of media processed. Will check again in 1000ms 06:10:19.891 [debug] Current batch of media processed. Will check again in 1000ms 06:10:20.892 [debug] Current batch of media processed. Will check again in 1000ms 06:10:21.893 [debug] Current batch of media processed. Will check again in 1000ms 06:10:22.894 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "If you're on Linux you've probably written at least a couple of Bash shell scripts, but what if there was another way to do it, a node based way where you didn't have to write any code by hand.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVish Github: https://github.com/Lluciocc/Vish\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Bash #Zsh #Programming #shellscripting \n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 867, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022300_The Most Unique Way To Make Bash Shell Scripts.mp4", "id" => "5SLDNN5DP_o", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5SLDNN5DP_o", "playlist_index" => 5, "timestamp" => 1771864202, "title" => "The Most Unique Way To Make Bash Shell Scripts", "upload_date" => "20260223"} 06:10:22.895 [debug] QUERY OK source="sources" db=0.3ms idle=116.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] 06:10:22.896 [debug] QUERY OK source="sources" db=0.2ms idle=117.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:10:22.906 [debug] QUERY OK source="media_items" db=9.8ms queue=0.1ms idle=117.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-23 16:30:02Z], 30] 06:10:22.946 [debug] QUERY OK source="media_items" db=38.3ms queue=0.1ms idle=128.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're on Linux you've probably written at least a couple of Bash shell scripts, but what if there was another way to do it, a node based way where you didn't have to write any code by hand.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVish Github: https://github.com/Lluciocc/Vish\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Bash #Zsh #Programming #shellscripting \n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Most Unique Way To Make Bash Shell Scripts", "7e49d664-7c9b-4247-81a6-6f95eb1b16d4", "5SLDNN5DP_o", 867, false, "https://www.youtube.com/watch?v=5SLDNN5DP_o", 5, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022300_The Most Unique Way To Make Bash Shell Scripts.mp4", false, false, false, 30, [], 98, ~U[2026-02-23 16:30:02Z], ~U[2026-03-01 12:10:22Z], ~U[2026-03-01 12:10:22Z], "If you're on Linux you've probably written at least a couple of Bash shell scripts, but what if there was another way to do it, a node based way where you didn't have to write any code by hand.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVish Github: https://github.com/Lluciocc/Vish\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Bash #Zsh #Programming #shellscripting \n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Most Unique Way To Make Bash Shell Scripts", "5SLDNN5DP_o", 867, false, "https://www.youtube.com/watch?v=5SLDNN5DP_o", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022300_The Most Unique Way To Make Bash Shell Scripts.mp4", false, 30, ~U[2026-02-23 16:30:02Z]] 06:10:22.947 [debug] QUERY OK source="sources" db=0.5ms idle=115.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] 06:10:22.947 [debug] QUERY OK source="media_profiles" db=0.4ms idle=51.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] 06:10:22.949 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=51.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 [2337310] 06:10:22.949 [debug] Current batch of media processed. Will check again in 1000ms 06:10:23.950 [debug] Current batch of media processed. Will check again in 1000ms 06:10:24.951 [debug] Current batch of media processed. Will check again in 1000ms 06:10:25.952 [debug] Current batch of media processed. Will check again in 1000ms 06:10:26.954 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "You've probably heard that screensavers aren't possible on Wayland but that's not actually the case, not only are they possible but there are options available to use like XScreensaver even on Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWayland Screensaver: https://www.jwz.org/blog/2023/09/wayland-and-screen-savers/\nXscreensaver 6.11: https://www.jwz.org/blog/2025/07/xscreensaver-6-11/\nXscreensaver 6.12: https://www.jwz.org/blog/2025/07/xscreensaver-6-12/\nLinux Mint: https://blog.linuxmint.com/?p=4991\nKDE: https://invent.kde.org/plasma/kscreenlocker/-/merge_requests/207\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #FOSS #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 862, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022200_Screensavers Are Coming To Wayland.mp4", "id" => "i6qMTnHQ9ow", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=i6qMTnHQ9ow", "playlist_index" => 6, "timestamp" => 1771777818, "title" => "Screensavers Are Coming To Wayland", "upload_date" => "20260222"} 06:10:26.956 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=176.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 06:10:26.958 [debug] QUERY OK source="sources" db=0.9ms queue=0.3ms idle=178.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] 06:10:26.985 [debug] QUERY OK source="media_items" db=25.2ms queue=0.3ms idle=180.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-22 16:30:18Z], 30] 06:10:27.003 [debug] QUERY OK source="media_items" db=14.6ms queue=0.2ms idle=207.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've probably heard that screensavers aren't possible on Wayland but that's not actually the case, not only are they possible but there are options available to use like XScreensaver even on Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWayland Screensaver: https://www.jwz.org/blog/2023/09/wayland-and-screen-savers/\nXscreensaver 6.11: https://www.jwz.org/blog/2025/07/xscreensaver-6-11/\nXscreensaver 6.12: https://www.jwz.org/blog/2025/07/xscreensaver-6-12/\nLinux Mint: https://blog.linuxmint.com/?p=4991\nKDE: https://invent.kde.org/plasma/kscreenlocker/-/merge_requests/207\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #FOSS #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Screensavers Are Coming To Wayland", "2d25c91b-df12-423f-9f0f-038783d334e4", "i6qMTnHQ9ow", 862, false, "https://www.youtube.com/watch?v=i6qMTnHQ9ow", 6, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022200_Screensavers Are Coming To Wayland.mp4", false, false, false, 30, [], 98, ~U[2026-02-22 16:30:18Z], ~U[2026-03-01 12:10:26Z], ~U[2026-03-01 12:10:26Z], "You've probably heard that screensavers aren't possible on Wayland but that's not actually the case, not only are they possible but there are options available to use like XScreensaver even on Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWayland Screensaver: https://www.jwz.org/blog/2023/09/wayland-and-screen-savers/\nXscreensaver 6.11: https://www.jwz.org/blog/2025/07/xscreensaver-6-11/\nXscreensaver 6.12: https://www.jwz.org/blog/2025/07/xscreensaver-6-12/\nLinux Mint: https://blog.linuxmint.com/?p=4991\nKDE: https://invent.kde.org/plasma/kscreenlocker/-/merge_requests/207\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #FOSS #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Screensavers Are Coming To Wayland", "i6qMTnHQ9ow", 862, false, "https://www.youtube.com/watch?v=i6qMTnHQ9ow", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022200_Screensavers Are Coming To Wayland.mp4", false, 30, ~U[2026-02-22 16:30:18Z]] 06:10:27.006 [debug] QUERY OK source="sources" db=1.6ms queue=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" = ?) [30] 06:10:27.008 [debug] QUERY OK source="media_profiles" db=1.1ms queue=0.2ms idle=50.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] 06:10:27.011 [debug] QUERY OK source="media_items" db=1.8ms queue=0.1ms idle=50.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 [2329425] 06:10:27.012 [debug] Current batch of media processed. Will check again in 1000ms 06:10:28.012 [debug] Current batch of media processed. Will check again in 1000ms 06:10:29.013 [debug] Current batch of media processed. Will check again in 1000ms 06:10:30.014 [debug] Current batch of media processed. Will check again in 1000ms 06:10:31.016 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Nowadays the default look of KDE Plasma is called Breeze but before that during the KDE 4 era we had both Oxygen and Air and this developer is trying to bring it back.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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 Post: https://filipfila.wordpress.com/2026/02/08/beating-an-old-but-not-dead-horse-what-to-do-with-the-oxygen-and-air-themes/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 851, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022100_Bringing KDE 4 Oxygen Back To Modern KDE.mp4", "id" => "VplYzVNVncg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=VplYzVNVncg", "playlist_index" => 7, "timestamp" => 1771691412, "title" => "Bringing KDE 4 Oxygen Back To Modern KDE", "upload_date" => "20260221"} 06:10:31.016 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=237.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 06:10:31.017 [debug] QUERY OK source="sources" db=0.3ms idle=238.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:10:31.027 [debug] QUERY OK source="media_items" db=9.2ms idle=239.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-21 16:30:12Z], 30] 06:10:31.030 [debug] QUERY OK source="media_items" db=2.5ms queue=0.1ms idle=249.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" ["Nowadays the default look of KDE Plasma is called Breeze but before that during the KDE 4 era we had both Oxygen and Air and this developer is trying to bring it back.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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 Post: https://filipfila.wordpress.com/2026/02/08/beating-an-old-but-not-dead-horse-what-to-do-with-the-oxygen-and-air-themes/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bringing KDE 4 Oxygen Back To Modern KDE", "5febc6c7-3486-434d-a715-487330c3fd1a", "VplYzVNVncg", 851, false, "https://www.youtube.com/watch?v=VplYzVNVncg", 7, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022100_Bringing KDE 4 Oxygen Back To Modern KDE.mp4", false, false, false, 30, [], 98, ~U[2026-02-21 16:30:12Z], ~U[2026-03-01 12:10:31Z], ~U[2026-03-01 12:10:31Z], "Nowadays the default look of KDE Plasma is called Breeze but before that during the KDE 4 era we had both Oxygen and Air and this developer is trying to bring it back.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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 Post: https://filipfila.wordpress.com/2026/02/08/beating-an-old-but-not-dead-horse-what-to-do-with-the-oxygen-and-air-themes/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bringing KDE 4 Oxygen Back To Modern KDE", "VplYzVNVncg", 851, false, "https://www.youtube.com/watch?v=VplYzVNVncg", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022100_Bringing KDE 4 Oxygen Back To Modern KDE.mp4", false, 30, ~U[2026-02-21 16:30:12Z]] 06:10:31.031 [debug] QUERY OK source="sources" db=0.4ms idle=176.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] 06:10:31.032 [debug] QUERY OK source="media_profiles" db=0.3ms idle=15.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] 06:10:31.033 [debug] QUERY OK source="media_items" db=0.4ms idle=15.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 [2321562] 06:10:31.033 [debug] Current batch of media processed. Will check again in 1000ms 06:10:32.034 [debug] Current batch of media processed. Will check again in 1000ms 06:10:33.035 [debug] Current batch of media processed. Will check again in 1000ms 06:10:34.037 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The window manager space on Wayland has completely changed over the past few years, there was a time when Sway was the only good choice but now you have both Hyprland a dynamic tiler and Niri a scroller and this has changed the equation for what you can do on Wayland.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHyprland: https://hypr.land/\nNiri: https://github.com/niri-wm/niri\nKarousel: https://github.com/peterfajdiga/karousel\nRiver Repo: https://codeberg.org/river/river\nHyprland Wiki: https://wiki.hypr.land/\nNiri Wiki: https://github.com/niri-wm/niri/wiki/Configuration:-Introduction\nQuickshell: https://quickshell.org/\nMaterial Shell: https://github.com/AvengeMedia/DankMaterialShell\nNoctalia: https://github.com/noctalia-dev/noctalia-shell\nCaelestia: https://github.com/caelestia-dots/shell\nTheo Comment: https://x.com/theo/status/2018422881705984483\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Niri #Hyprland #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 1078, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021900_Hyprland And Niri Changed Wayland Forever.mp4", "id" => "jeY7xQ13v6I", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=jeY7xQ13v6I", "playlist_index" => 8, "timestamp" => 1771518621, "title" => "Hyprland And Niri Changed Wayland Forever", "upload_date" => "20260219"} 06:10:34.038 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1259.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 06:10:34.039 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1260.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:10:34.050 [debug] QUERY OK source="media_items" db=10.3ms 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-02-19 16:30:21Z], 30] 06:10:34.054 [debug] QUERY OK source="media_items" db=2.9ms idle=1189.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 window manager space on Wayland has completely changed over the past few years, there was a time when Sway was the only good choice but now you have both Hyprland a dynamic tiler and Niri a scroller and this has changed the equation for what you can do on Wayland.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHyprland: https://hypr.land/\nNiri: https://github.com/niri-wm/niri\nKarousel: https://github.com/peterfajdiga/karousel\nRiver Repo: https://codeberg.org/river/river\nHyprland Wiki: https://wiki.hypr.land/\nNiri Wiki: https://github.com/niri-wm/niri/wiki/Configuration:-Introduction\nQuickshell: https://quickshell.org/\nMaterial Shell: https://github.com/AvengeMedia/DankMaterialShell\nNoctalia: https://github.com/noctalia-dev/noctalia-shell\nCaelestia: https://github.com/caelestia-dots/shell\nTheo Comment: https://x.com/theo/status/2018422881705984483\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Niri #Hyprland #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Hyprland And Niri Changed Wayland Forever", "245a2ecf-7f84-4147-9478-02c2bab3f73a", "jeY7xQ13v6I", 1078, false, "https://www.youtube.com/watch?v=jeY7xQ13v6I", 8, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021900_Hyprland And Niri Changed Wayland Forever.mp4", false, false, false, 30, [], 98, ~U[2026-02-19 16:30:21Z], ~U[2026-03-01 12:10:34Z], ~U[2026-03-01 12:10:34Z], "The window manager space on Wayland has completely changed over the past few years, there was a time when Sway was the only good choice but now you have both Hyprland a dynamic tiler and Niri a scroller and this has changed the equation for what you can do on Wayland.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHyprland: https://hypr.land/\nNiri: https://github.com/niri-wm/niri\nKarousel: https://github.com/peterfajdiga/karousel\nRiver Repo: https://codeberg.org/river/river\nHyprland Wiki: https://wiki.hypr.land/\nNiri Wiki: https://github.com/niri-wm/niri/wiki/Configuration:-Introduction\nQuickshell: https://quickshell.org/\nMaterial Shell: https://github.com/AvengeMedia/DankMaterialShell\nNoctalia: https://github.com/noctalia-dev/noctalia-shell\nCaelestia: https://github.com/caelestia-dots/shell\nTheo Comment: https://x.com/theo/status/2018422881705984483\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Niri #Hyprland #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Hyprland And Niri Changed Wayland Forever", "jeY7xQ13v6I", 1078, false, "https://www.youtube.com/watch?v=jeY7xQ13v6I", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021900_Hyprland And Niri Changed Wayland Forever.mp4", false, 30, ~U[2026-02-19 16:30:21Z]] 06:10:34.055 [debug] QUERY OK source="sources" db=0.5ms idle=191.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:10:34.055 [debug] QUERY OK source="media_profiles" db=0.3ms idle=16.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] 06:10:34.056 [debug] QUERY OK source="media_items" db=0.5ms idle=16.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 [2305791] 06:10:34.056 [debug] Current batch of media processed. Will check again in 1000ms 06:10:35.057 [debug] Current batch of media processed. Will check again in 1000ms 06:10:36.058 [debug] Current batch of media processed. Will check again in 1000ms 06:10:37.059 [debug] Current batch of media processed. Will check again in 1000ms 06:10:38.060 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A few weeks back KDE announced that the new Plasma Login Manager was going to require the use of Systemd and thus wouldn't work on FreeBSD or the other BSDs and whilst this is true it's only about the Login Manager not the rest of KDE Plasma\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\n9to5Linux: https://9to5linux.com/kaos-linux-drops-kde-plasma-after-12-years-for-niri-noctalia-to-escape-systemd\nLinuxiac: https://linuxiac.com/kaos-2026-02-debuts-niri-wayland-desktop/\nXDA Developers: https://www.xda-developers.com/linux-distro-dropped-kde-plasma-support-tries-to-escape-systemd/\nKaOS News Post: https://kaosx.us/news/2026/kaos02/\nReddit Post: https://www.reddit.com/r/kde/comments/1r68jmi/a_quick_antifud_faq_to_debunk_the_kde_is_forcing/\nFreeBSd Wayland: https://x61.sh/log/2024/05/27052024192206-sway_openbsd.html\nNetBSD 2020: https://blog.netbsd.org/tnf/entry/wayland_on_netbsd_trials_and\nFreeBSD and NetBSD Now: https://www.youtube.com/watch?v=oo_8gnWQ4xo\nHikari: http://hikari.acmelabs.space/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 843, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021800_KDE Plasma Is Not Forcing Systemd Use.mp4", "id" => "0l29JZxzong", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=0l29JZxzong", "playlist_index" => 9, "timestamp" => 1771432200, "title" => "KDE Plasma Is Not Forcing Systemd Use", "upload_date" => "20260218"} 06:10:38.061 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=282.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 06:10:38.062 [debug] QUERY OK source="sources" db=0.2ms idle=283.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] 06:10:38.072 [debug] QUERY OK source="media_items" db=9.2ms idle=284.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-18 16:30:00Z], 30] 06:10:38.076 [debug] QUERY OK source="media_items" db=2.8ms idle=293.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 few weeks back KDE announced that the new Plasma Login Manager was going to require the use of Systemd and thus wouldn't work on FreeBSD or the other BSDs and whilst this is true it's only about the Login Manager not the rest of KDE Plasma\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\n9to5Linux: https://9to5linux.com/kaos-linux-drops-kde-plasma-after-12-years-for-niri-noctalia-to-escape-systemd\nLinuxiac: https://linuxiac.com/kaos-2026-02-debuts-niri-wayland-desktop/\nXDA Developers: https://www.xda-developers.com/linux-distro-dropped-kde-plasma-support-tries-to-escape-systemd/\nKaOS News Post: https://kaosx.us/news/2026/kaos02/\nReddit Post: https://www.reddit.com/r/kde/comments/1r68jmi/a_quick_antifud_faq_to_debunk_the_kde_is_forcing/\nFreeBSd Wayland: https://x61.sh/log/2024/05/27052024192206-sway_openbsd.html\nNetBSD 2020: https://blog.netbsd.org/tnf/entry/wayland_on_netbsd_trials_and\nFreeBSD and NetBSD Now: https://www.youtube.com/watch?v=oo_8gnWQ4xo\nHikari: http://hikari.acmelabs.space/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Is Not Forcing Systemd Use", "7b4fecaa-a119-4249-9ae4-d97f169f05d0", "0l29JZxzong", 843, false, "https://www.youtube.com/watch?v=0l29JZxzong", 9, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021800_KDE Plasma Is Not Forcing Systemd Use.mp4", false, false, false, 30, [], 98, ~U[2026-02-18 16:30:00Z], ~U[2026-03-01 12:10:38Z], ~U[2026-03-01 12:10:38Z], "A few weeks back KDE announced that the new Plasma Login Manager was going to require the use of Systemd and thus wouldn't work on FreeBSD or the other BSDs and whilst this is true it's only about the Login Manager not the rest of KDE Plasma\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\n9to5Linux: https://9to5linux.com/kaos-linux-drops-kde-plasma-after-12-years-for-niri-noctalia-to-escape-systemd\nLinuxiac: https://linuxiac.com/kaos-2026-02-debuts-niri-wayland-desktop/\nXDA Developers: https://www.xda-developers.com/linux-distro-dropped-kde-plasma-support-tries-to-escape-systemd/\nKaOS News Post: https://kaosx.us/news/2026/kaos02/\nReddit Post: https://www.reddit.com/r/kde/comments/1r68jmi/a_quick_antifud_faq_to_debunk_the_kde_is_forcing/\nFreeBSd Wayland: https://x61.sh/log/2024/05/27052024192206-sway_openbsd.html\nNetBSD 2020: https://blog.netbsd.org/tnf/entry/wayland_on_netbsd_trials_and\nFreeBSD and NetBSD Now: https://www.youtube.com/watch?v=oo_8gnWQ4xo\nHikari: http://hikari.acmelabs.space/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Is Not Forcing Systemd Use", "0l29JZxzong", 843, false, "https://www.youtube.com/watch?v=0l29JZxzong", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021800_KDE Plasma Is Not Forcing Systemd Use.mp4", false, 30, ~U[2026-02-18 16:30:00Z]] 06:10:38.076 [debug] QUERY OK source="sources" db=0.5ms idle=202.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:10:38.077 [debug] QUERY OK source="media_profiles" db=0.3ms idle=15.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:10:38.078 [debug] QUERY OK source="media_items" db=0.6ms idle=15.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 [2298089] 06:10:38.078 [debug] Current batch of media processed. Will check again in 1000ms 06:10:39.079 [debug] Current batch of media processed. Will check again in 1000ms 06:10:40.080 [debug] Current batch of media processed. Will check again in 1000ms 06:10:41.081 [debug] Current batch of media processed. Will check again in 1000ms 06:10:42.083 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "What if I told you that an AI agent just tried to ruin the career of a developer on Matplotlib who was following Matplotlib policy to not allow AI agents, writing a hilarious blog post on the situation but it gets even better from there\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nIssue: https://github.com/matplotlib/matplotlib/issues/31130\nMerge Request: https://github.com/matplotlib/matplotlib/pull/31132\nOpenClaw Joins OpenAI: https://www.itnews.com.au/news/openclaw-founder-joins-openai-623662\nAI Blog Post 1: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-gatekeeping-in-open-source-the-scott-shambaugh-story.html\nAI Blog Post 2: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-matplotlib-truce-and-lessons.html\nScott Blog Post 1: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me/\nArs Technica Article: https://web.archive.org/web/20260213194851/https://arstechnica.com/ai/2026/02/after-a-routine-code-rejection-an-ai-agent-published-a-hit-piece-on-someone-by-name/\nScott Blog Post 2: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me-part-2/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#AI #OpenSource #Developer #SoftwareDeveloper #Programmer\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 1382, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021700_When AI Agents Try To Ruin Your Career.mp4", "id" => "fMoUE59H9bs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=fMoUE59H9bs", "playlist_index" => 10, "timestamp" => 1771345828, "title" => "When AI Agents Try To Ruin Your Career", "upload_date" => "20260217"} 06:10:42.084 [debug] QUERY OK source="sources" db=0.6ms idle=304.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 06:10:42.084 [debug] QUERY OK source="sources" db=0.3ms idle=305.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:10:42.094 [debug] QUERY OK source="media_items" db=9.4ms queue=0.1ms idle=306.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-17 16:30:28Z], 30] 06:10:42.098 [debug] QUERY OK source="media_items" db=2.8ms idle=316.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" ["What if I told you that an AI agent just tried to ruin the career of a developer on Matplotlib who was following Matplotlib policy to not allow AI agents, writing a hilarious blog post on the situation but it gets even better from there\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nIssue: https://github.com/matplotlib/matplotlib/issues/31130\nMerge Request: https://github.com/matplotlib/matplotlib/pull/31132\nOpenClaw Joins OpenAI: https://www.itnews.com.au/news/openclaw-founder-joins-openai-623662\nAI Blog Post 1: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-gatekeeping-in-open-source-the-scott-shambaugh-story.html\nAI Blog Post 2: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-matplotlib-truce-and-lessons.html\nScott Blog Post 1: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me/\nArs Technica Article: https://web.archive.org/web/20260213194851/https://arstechnica.com/ai/2026/02/after-a-routine-code-rejection-an-ai-agent-published-a-hit-piece-on-someone-by-name/\nScott Blog Post 2: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me-part-2/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#AI #OpenSource #Developer #SoftwareDeveloper #Programmer\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "When AI Agents Try To Ruin Your Career", "b6fa3fda-c504-49cb-af5d-5d98f389e4c2", "fMoUE59H9bs", 1382, false, "https://www.youtube.com/watch?v=fMoUE59H9bs", 10, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021700_When AI Agents Try To Ruin Your Career.mp4", false, false, false, 30, [], 98, ~U[2026-02-17 16:30:28Z], ~U[2026-03-01 12:10:42Z], ~U[2026-03-01 12:10:42Z], "What if I told you that an AI agent just tried to ruin the career of a developer on Matplotlib who was following Matplotlib policy to not allow AI agents, writing a hilarious blog post on the situation but it gets even better from there\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nIssue: https://github.com/matplotlib/matplotlib/issues/31130\nMerge Request: https://github.com/matplotlib/matplotlib/pull/31132\nOpenClaw Joins OpenAI: https://www.itnews.com.au/news/openclaw-founder-joins-openai-623662\nAI Blog Post 1: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-gatekeeping-in-open-source-the-scott-shambaugh-story.html\nAI Blog Post 2: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-matplotlib-truce-and-lessons.html\nScott Blog Post 1: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me/\nArs Technica Article: https://web.archive.org/web/20260213194851/https://arstechnica.com/ai/2026/02/after-a-routine-code-rejection-an-ai-agent-published-a-hit-piece-on-someone-by-name/\nScott Blog Post 2: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me-part-2/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#AI #OpenSource #Developer #SoftwareDeveloper #Programmer\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "When AI Agents Try To Ruin Your Career", "fMoUE59H9bs", 1382, false, "https://www.youtube.com/watch?v=fMoUE59H9bs", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021700_When AI Agents Try To Ruin Your Career.mp4", false, 30, ~U[2026-02-17 16:30:28Z]] 06:10:42.099 [debug] QUERY OK source="sources" db=0.5ms idle=216.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] 06:10:42.100 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 06:10:42.101 [debug] QUERY OK source="media_items" db=0.5ms idle=16.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 [2290238] 06:10:42.101 [debug] Current batch of media processed. Will check again in 1000ms 06:10:42.320 [info] {"source":"oban","duration":22526,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 06:10:43.102 [debug] Current batch of media processed. Will check again in 1000ms 06:10:44.103 [debug] Current batch of media processed. Will check again in 1000ms 06:10:45.105 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "You probably know that you should be safe whilst using the AUR on Arch Linux but how does one go about doing that.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nAUR Post: https://bertptrs.nl/2026/01/30/how-to-review-an-aur-package.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#Linux #ArchLinux #FOSS #OpenSource #LinuxDistro\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 1155, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021600_Staying Safe On Arch Linux.mp4", "id" => "bTKATeeQlvM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=bTKATeeQlvM", "playlist_index" => 11, "timestamp" => 1771259411, "title" => "Staying Safe On Arch Linux", "upload_date" => "20260216"} 06:10:45.106 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=1326.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 06:10:45.107 [debug] QUERY OK source="sources" db=0.3ms idle=1327.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] 06:10:45.115 [debug] QUERY OK source="media_items" db=8.4ms idle=1328.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-16 16:30:11Z], 30] 06:10:45.118 [debug] QUERY OK source="media_items" db=2.0ms idle=1228.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" ["You probably know that you should be safe whilst using the AUR on Arch Linux but how does one go about doing that.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nAUR Post: https://bertptrs.nl/2026/01/30/how-to-review-an-aur-package.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#Linux #ArchLinux #FOSS #OpenSource #LinuxDistro\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Staying Safe On Arch Linux", "a2bc9134-f4a6-49ba-9971-d3f816be2665", "bTKATeeQlvM", 1155, false, "https://www.youtube.com/watch?v=bTKATeeQlvM", 11, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021600_Staying Safe On Arch Linux.mp4", false, false, false, 30, [], 98, ~U[2026-02-16 16:30:11Z], ~U[2026-03-01 12:10:45Z], ~U[2026-03-01 12:10:45Z], "You probably know that you should be safe whilst using the AUR on Arch Linux but how does one go about doing that.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nAUR Post: https://bertptrs.nl/2026/01/30/how-to-review-an-aur-package.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#Linux #ArchLinux #FOSS #OpenSource #LinuxDistro\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Staying Safe On Arch Linux", "bTKATeeQlvM", 1155, false, "https://www.youtube.com/watch?v=bTKATeeQlvM", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021600_Staying Safe On Arch Linux.mp4", false, 30, ~U[2026-02-16 16:30:11Z]] 06:10:45.119 [debug] QUERY OK source="sources" db=0.4ms idle=229.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:10:45.120 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=13.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] 06:10:45.122 [debug] QUERY OK source="media_items" db=1.1ms idle=13.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 [2282382] 06:10:45.122 [debug] Current batch of media processed. Will check again in 1000ms 06:10:46.122 [debug] Current batch of media processed. Will check again in 1000ms 06:10:47.123 [debug] Current batch of media processed. Will check again in 1000ms 06:10:48.124 [debug] Current batch of media processed. Will check again in 1000ms 06:10:49.125 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Debian is a very important project in the world of Linux but they're going through a bit of a crisis of being Debian, having old systems that people don't want to get involved in and a slow drain of maintainers\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nDebian Linux Bugs: https://www.debian.org/Bugs/\nBug Tracker News: https://www.phoronix.com/news/Debian-Bug-Tracker-2026-Woes\n25 Year Old Report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=78526\nCall For Volunteers: https://lists.debian.org/debian-devel-announce/2026/01/msg00001.html\nMaintainers: https://www.debian.org/intro/organization#data-protection\nQuitting Maintainers: https://lists.debian.org/debian-devel-announce/2026/02/msg00000.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\n#Debian #Linux #LinuxDistro #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" => 1307, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021500_Debian Linux Is Going Through A Crisis.mp4", "id" => "ldoHviThNqQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ldoHviThNqQ", "playlist_index" => 12, "timestamp" => 1771173029, "title" => "Debian Linux Is Going Through A Crisis", "upload_date" => "20260215"} 06:10:49.126 [debug] QUERY OK source="sources" db=0.4ms 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" IN (?)) [30] 06:10:49.127 [debug] QUERY OK source="sources" db=0.4ms idle=348.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] 06:10:49.137 [debug] QUERY OK source="media_items" db=9.0ms idle=349.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-15 16:30:29Z], 30] 06:10:49.140 [debug] QUERY OK source="media_items" db=2.3ms queue=0.1ms idle=358.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" ["Debian is a very important project in the world of Linux but they're going through a bit of a crisis of being Debian, having old systems that people don't want to get involved in and a slow drain of maintainers\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nDebian Linux Bugs: https://www.debian.org/Bugs/\nBug Tracker News: https://www.phoronix.com/news/Debian-Bug-Tracker-2026-Woes\n25 Year Old Report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=78526\nCall For Volunteers: https://lists.debian.org/debian-devel-announce/2026/01/msg00001.html\nMaintainers: https://www.debian.org/intro/organization#data-protection\nQuitting Maintainers: https://lists.debian.org/debian-devel-announce/2026/02/msg00000.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\n#Debian #Linux #LinuxDistro #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.", "Debian Linux Is Going Through A Crisis", "c61d5a97-186c-46ca-a64f-e8711cc3a81e", "ldoHviThNqQ", 1307, false, "https://www.youtube.com/watch?v=ldoHviThNqQ", 12, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021500_Debian Linux Is Going Through A Crisis.mp4", false, false, false, 30, [], 98, ~U[2026-02-15 16:30:29Z], ~U[2026-03-01 12:10:49Z], ~U[2026-03-01 12:10:49Z], "Debian is a very important project in the world of Linux but they're going through a bit of a crisis of being Debian, having old systems that people don't want to get involved in and a slow drain of maintainers\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nDebian Linux Bugs: https://www.debian.org/Bugs/\nBug Tracker News: https://www.phoronix.com/news/Debian-Bug-Tracker-2026-Woes\n25 Year Old Report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=78526\nCall For Volunteers: https://lists.debian.org/debian-devel-announce/2026/01/msg00001.html\nMaintainers: https://www.debian.org/intro/organization#data-protection\nQuitting Maintainers: https://lists.debian.org/debian-devel-announce/2026/02/msg00000.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\n#Debian #Linux #LinuxDistro #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.", "Debian Linux Is Going Through A Crisis", "ldoHviThNqQ", 1307, false, "https://www.youtube.com/watch?v=ldoHviThNqQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021500_Debian Linux Is Going Through A Crisis.mp4", false, 30, ~U[2026-02-15 16:30:29Z]] 06:10:49.141 [debug] QUERY OK source="sources" db=0.4ms idle=241.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:10:49.141 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 06:10:49.142 [debug] QUERY OK source="media_items" db=0.4ms 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 [2274547] 06:10:49.142 [debug] Current batch of media processed. Will check again in 1000ms 06:10:50.143 [debug] Current batch of media processed. Will check again in 1000ms 06:10:51.144 [debug] Current batch of media processed. Will check again in 1000ms 06:10:52.145 [debug] Current batch of media processed. Will check again in 1000ms 06:10:53.147 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A few months back we saw the release of COSMIC Epoch 1 the first full release of the COSMIC Desktop and now we have the roadmap for the upcoming COSMIC Epochs 2 and 3.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCOSMIC Roadmap: https://blog.system76.com/post/cosmic-epoch-2-and-3-roadmap\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Wayland #LinuxDesktop #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" => 1298, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021400_COSMIC Desktop Epoch 2 And 3 Change Everything.mp4", "id" => "wai6XsiIrLo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=wai6XsiIrLo", "playlist_index" => 13, "timestamp" => 1771086632, "title" => "COSMIC Desktop Epoch 2 And 3 Change Everything", "upload_date" => "20260214"} 06:10:53.148 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=368.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 06:10:53.149 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=369.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:10:53.160 [debug] QUERY OK source="media_items" db=10.6ms queue=0.1ms idle=370.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 16:30:32Z], 30] 06:10:53.164 [debug] QUERY OK source="media_items" db=2.5ms idle=382.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 few months back we saw the release of COSMIC Epoch 1 the first full release of the COSMIC Desktop and now we have the roadmap for the upcoming COSMIC Epochs 2 and 3.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCOSMIC Roadmap: https://blog.system76.com/post/cosmic-epoch-2-and-3-roadmap\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Wayland #LinuxDesktop #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.", "COSMIC Desktop Epoch 2 And 3 Change Everything", "025867fe-7fdc-4ebc-83a7-8dbda41928bc", "wai6XsiIrLo", 1298, false, "https://www.youtube.com/watch?v=wai6XsiIrLo", 13, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021400_COSMIC Desktop Epoch 2 And 3 Change Everything.mp4", false, false, false, 30, [], 98, ~U[2026-02-14 16:30:32Z], ~U[2026-03-01 12:10:53Z], ~U[2026-03-01 12:10:53Z], "A few months back we saw the release of COSMIC Epoch 1 the first full release of the COSMIC Desktop and now we have the roadmap for the upcoming COSMIC Epochs 2 and 3.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCOSMIC Roadmap: https://blog.system76.com/post/cosmic-epoch-2-and-3-roadmap\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Wayland #LinuxDesktop #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.", "COSMIC Desktop Epoch 2 And 3 Change Everything", "wai6XsiIrLo", 1298, false, "https://www.youtube.com/watch?v=wai6XsiIrLo", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021400_COSMIC Desktop Epoch 2 And 3 Change Everything.mp4", false, 30, ~U[2026-02-14 16:30:32Z]] 06:10:53.165 [debug] QUERY OK source="sources" db=0.6ms queue=0.2ms idle=255.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] 06:10:53.166 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=17.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:10:53.167 [debug] QUERY OK source="media_items" db=0.6ms idle=17.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 [2266970] 06:10:53.167 [debug] Current batch of media processed. Will check again in 1000ms 06:10:54.168 [debug] Current batch of media processed. Will check again in 1000ms 06:10:55.169 [debug] Current batch of media processed. Will check again in 1000ms 06:10:56.170 [debug] Current batch of media processed. Will check again in 1000ms 06:10:57.171 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Linux From Scatch is a project that every Linux user should try at least once but recently they had to make the controversial change of dropping the SysV or System V book in favour of just Systemd due to increased workload and lack of maintainers.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPhoronix Article: https://www.phoronix.com/news/LFS-Dropping-SysVinit\nLFS OpenRC: https://linuxfromscratch.org/~zeckma/lfs-openrc/\nAnnouncement: https://lists.linuxfromscratch.org/sympa/arc/lfs-dev/2026-02/msg00002.html\nSecond Thread: https://lists.linuxfromscratch.org/sympa/arc/blfs-dev/2026-02/msg00001.html\nSysvLFS Project: https://github.com/MymeType/sysvlfs\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#LinuxFromScratch #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 978, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021200_Linux From Scratch Drops SysV In Favour Of Pure Systemd.mp4", "id" => "OHyWs323uPc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=OHyWs323uPc", "playlist_index" => 14, "timestamp" => 1770913819, "title" => "Linux From Scratch Drops SysV In Favour Of Pure Systemd", "upload_date" => "20260212"} 06:10:57.172 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=393.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] 06:10:57.173 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=394.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:10:57.185 [debug] QUERY OK source="media_items" db=11.2ms idle=395.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-12 16:30:19Z], 30] 06:10:57.189 [debug] QUERY OK source="media_items" db=2.5ms idle=407.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" ["Linux From Scatch is a project that every Linux user should try at least once but recently they had to make the controversial change of dropping the SysV or System V book in favour of just Systemd due to increased workload and lack of maintainers.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPhoronix Article: https://www.phoronix.com/news/LFS-Dropping-SysVinit\nLFS OpenRC: https://linuxfromscratch.org/~zeckma/lfs-openrc/\nAnnouncement: https://lists.linuxfromscratch.org/sympa/arc/lfs-dev/2026-02/msg00002.html\nSecond Thread: https://lists.linuxfromscratch.org/sympa/arc/blfs-dev/2026-02/msg00001.html\nSysvLFS Project: https://github.com/MymeType/sysvlfs\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#LinuxFromScratch #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 From Scratch Drops SysV In Favour Of Pure Systemd", "2a1b5fd3-645d-4c3a-a54d-cd9d07f29862", "OHyWs323uPc", 978, false, "https://www.youtube.com/watch?v=OHyWs323uPc", 14, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021200_Linux From Scratch Drops SysV In Favour Of Pure Systemd.mp4", false, false, false, 30, [], 98, ~U[2026-02-12 16:30:19Z], ~U[2026-03-01 12:10:57Z], ~U[2026-03-01 12:10:57Z], "Linux From Scatch is a project that every Linux user should try at least once but recently they had to make the controversial change of dropping the SysV or System V book in favour of just Systemd due to increased workload and lack of maintainers.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPhoronix Article: https://www.phoronix.com/news/LFS-Dropping-SysVinit\nLFS OpenRC: https://linuxfromscratch.org/~zeckma/lfs-openrc/\nAnnouncement: https://lists.linuxfromscratch.org/sympa/arc/lfs-dev/2026-02/msg00002.html\nSecond Thread: https://lists.linuxfromscratch.org/sympa/arc/blfs-dev/2026-02/msg00001.html\nSysvLFS Project: https://github.com/MymeType/sysvlfs\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#LinuxFromScratch #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 From Scratch Drops SysV In Favour Of Pure Systemd", "OHyWs323uPc", 978, false, "https://www.youtube.com/watch?v=OHyWs323uPc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021200_Linux From Scratch Drops SysV In Favour Of Pure Systemd.mp4", false, 30, ~U[2026-02-12 16:30:19Z]] 06:10:57.189 [debug] QUERY OK source="sources" db=0.4ms idle=271.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] 06:10:57.190 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 06:10:57.191 [debug] QUERY OK source="media_items" db=0.5ms idle=17.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 [2251261] 06:10:57.191 [debug] Current batch of media processed. Will check again in 1000ms 06:10:58.192 [debug] Current batch of media processed. Will check again in 1000ms 06:10:59.193 [debug] Current batch of media processed. Will check again in 1000ms 06:11:00.170 [info] {"source":"oban","duration":296,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:11:00.195 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "2 and half years and almost 1000 interactions later we finally see the window positioning protocol now going by xx-zones has finally been merge but what does this actually mean for Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHistorical Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/72\nProtocol 1: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/247\nProtocol 2: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/249\nCurrent Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/264\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #LinuxDesktop #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" => 1267, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021100_Wayland Positioning Protocol Is Finally Merged.mp4", "id" => "s-W7mZhx7QQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=s-W7mZhx7QQ", "playlist_index" => 15, "timestamp" => 1770827432, "title" => "Wayland Positioning Protocol Is Finally Merged", "upload_date" => "20260211"} 06:11:00.196 [debug] QUERY OK source="sources" db=0.5ms idle=1417.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 06:11:00.197 [debug] QUERY OK source="sources" db=0.2ms idle=1418.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:11:00.206 [debug] QUERY OK source="media_items" db=9.3ms idle=1273.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-11 16:30:32Z], 30] 06:11:00.210 [debug] QUERY OK source="media_items" db=2.3ms idle=281.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" ["2 and half years and almost 1000 interactions later we finally see the window positioning protocol now going by xx-zones has finally been merge but what does this actually mean for Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHistorical Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/72\nProtocol 1: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/247\nProtocol 2: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/249\nCurrent Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/264\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #LinuxDesktop #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.", "Wayland Positioning Protocol Is Finally Merged", "94669a42-1f6d-4a59-a3b3-fde257972ad6", "s-W7mZhx7QQ", 1267, false, "https://www.youtube.com/watch?v=s-W7mZhx7QQ", 15, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021100_Wayland Positioning Protocol Is Finally Merged.mp4", false, false, false, 30, [], 98, ~U[2026-02-11 16:30:32Z], ~U[2026-03-01 12:11:00Z], ~U[2026-03-01 12:11:00Z], "2 and half years and almost 1000 interactions later we finally see the window positioning protocol now going by xx-zones has finally been merge but what does this actually mean for Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHistorical Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/72\nProtocol 1: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/247\nProtocol 2: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/249\nCurrent Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/264\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #LinuxDesktop #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.", "Wayland Positioning Protocol Is Finally Merged", "s-W7mZhx7QQ", 1267, false, "https://www.youtube.com/watch?v=s-W7mZhx7QQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021100_Wayland Positioning Protocol Is Finally Merged.mp4", false, 30, ~U[2026-02-11 16:30:32Z]] 06:11:00.210 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [30] 06:11:00.211 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 06:11:00.212 [debug] QUERY OK source="media_items" db=0.4ms idle=14.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 [2243348] 06:11:00.212 [debug] Current batch of media processed. Will check again in 1000ms 06:11:01.213 [debug] Current batch of media processed. Will check again in 1000ms 06:11:02.214 [debug] Current batch of media processed. Will check again in 1000ms 06:11:03.215 [debug] Current batch of media processed. Will check again in 1000ms 06:11:04.216 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "We've had a lot positive coverage of Linux as of late so why not have something a little bit more on the negative side, recently The Verge put out this piece on Linux and it has been making the rounds.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVerge Article: https://archive.is/eQJnd\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #OpenSource #FOSS #LinuxDesktop #LinuxDistro\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 1691, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021000_He Tried Linux, It Was A Mistake.mp4", "id" => "vncr11f6niw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=vncr11f6niw", "playlist_index" => 16, "timestamp" => 1770741022, "title" => "He Tried Linux, It Was A Mistake", "upload_date" => "20260210"} 06:11:04.217 [debug] QUERY OK source="sources" db=0.3ms idle=438.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] 06:11:04.218 [debug] QUERY OK source="sources" db=0.4ms idle=439.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] 06:11:04.231 [debug] QUERY OK source="media_items" db=12.2ms idle=440.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-10 16:30:22Z], 30] 06:11:04.235 [debug] QUERY OK source="media_items" db=2.5ms idle=453.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" ["We've had a lot positive coverage of Linux as of late so why not have something a little bit more on the negative side, recently The Verge put out this piece on Linux and it has been making the rounds.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVerge Article: https://archive.is/eQJnd\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #OpenSource #FOSS #LinuxDesktop #LinuxDistro\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "He Tried Linux, It Was A Mistake", "ac563a5a-a63a-41de-b00a-1670d2edc1d2", "vncr11f6niw", 1691, false, "https://www.youtube.com/watch?v=vncr11f6niw", 16, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021000_He Tried Linux, It Was A Mistake.mp4", false, false, false, 30, [], 98, ~U[2026-02-10 16:30:22Z], ~U[2026-03-01 12:11:04Z], ~U[2026-03-01 12:11:04Z], "We've had a lot positive coverage of Linux as of late so why not have something a little bit more on the negative side, recently The Verge put out this piece on Linux and it has been making the rounds.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVerge Article: https://archive.is/eQJnd\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #OpenSource #FOSS #LinuxDesktop #LinuxDistro\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "He Tried Linux, It Was A Mistake", "vncr11f6niw", 1691, false, "https://www.youtube.com/watch?v=vncr11f6niw", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021000_He Tried Linux, It Was A Mistake.mp4", false, 30, ~U[2026-02-10 16:30:22Z]] 06:11:04.236 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=299.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:11:04.236 [debug] QUERY OK source="media_profiles" db=0.4ms idle=18.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] 06:11:04.237 [debug] QUERY OK source="media_items" db=0.4ms idle=18.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 [2235638] 06:11:04.237 [debug] Current batch of media processed. Will check again in 1000ms 06:11:05.238 [debug] Current batch of media processed. Will check again in 1000ms 06:11:06.239 [debug] Current batch of media processed. Will check again in 1000ms 06:11:07.241 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Rather than constantly breaking your Linux system and treating it like a lab or a test bench, there's probably a better way to do things.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHow To Geek Article: https://www.howtogeek.com/please-stop-screwing-with-your-daily-driver-linux-pc/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop #OpenSource #FOSS #ArchLinux #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 833, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020900_Stop Constantly Breaking Your Linux Desktop.mp4", "id" => "PKSb1VqPbFc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PKSb1VqPbFc", "playlist_index" => 17, "timestamp" => 1770654618, "title" => "Stop Constantly Breaking Your Linux Desktop", "upload_date" => "20260209"} 06:11:07.242 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1462.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 06:11:07.243 [debug] QUERY OK source="sources" db=0.3ms idle=1464.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:11:07.255 [debug] QUERY OK source="media_items" db=11.2ms queue=0.1ms idle=1464.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 16:30:18Z], 30] 06:11:07.258 [debug] QUERY OK source="media_items" db=2.5ms idle=1315.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" ["Rather than constantly breaking your Linux system and treating it like a lab or a test bench, there's probably a better way to do things.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHow To Geek Article: https://www.howtogeek.com/please-stop-screwing-with-your-daily-driver-linux-pc/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop #OpenSource #FOSS #ArchLinux #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Stop Constantly Breaking Your Linux Desktop", "16efd117-58ca-4e62-bb13-7d143d36c49d", "PKSb1VqPbFc", 833, false, "https://www.youtube.com/watch?v=PKSb1VqPbFc", 17, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020900_Stop Constantly Breaking Your Linux Desktop.mp4", false, false, false, 30, [], 98, ~U[2026-02-09 16:30:18Z], ~U[2026-03-01 12:11:07Z], ~U[2026-03-01 12:11:07Z], "Rather than constantly breaking your Linux system and treating it like a lab or a test bench, there's probably a better way to do things.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHow To Geek Article: https://www.howtogeek.com/please-stop-screwing-with-your-daily-driver-linux-pc/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop #OpenSource #FOSS #ArchLinux #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Stop Constantly Breaking Your Linux Desktop", "PKSb1VqPbFc", 833, false, "https://www.youtube.com/watch?v=PKSb1VqPbFc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020900_Stop Constantly Breaking Your Linux Desktop.mp4", false, 30, ~U[2026-02-09 16:30:18Z]] 06:11:07.259 [debug] QUERY OK source="sources" db=0.5ms idle=315.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:11:07.260 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=17.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:11:07.261 [debug] QUERY OK source="media_items" db=0.6ms idle=17.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 [2227703] 06:11:07.261 [debug] Current batch of media processed. Will check again in 1000ms 06:11:08.262 [debug] Current batch of media processed. Will check again in 1000ms 06:11:09.263 [debug] Current batch of media processed. Will check again in 1000ms 06:11:10.264 [debug] Current batch of media processed. Will check again in 1000ms 06:11:11.266 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "It's been a work in progress for a year now and it's stable enough as well as there being packages for the KDE 1 revival project, called MiDE powered by a Qt 2 fork called Osiris.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nYear Old Post: https://www.reddit.com/r/linux/comments/1htnhwq/software_left_in_nostalgialand_dead_software/\nRecent Post: https://www.reddit.com/r/linux/comments/1q17svp/midesktop_kde1_fork_development_preview_release/\nMiDE: https://libranext.com/midesktop/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Qt #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" => 693, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020800_Try Out The KDE 1 Revival Project.mp4", "id" => "aj68Zc0WS5c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=aj68Zc0WS5c", "playlist_index" => 18, "timestamp" => 1770568201, "title" => "Try Out The KDE 1 Revival Project", "upload_date" => "20260208"} 06:11:11.267 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=487.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] 06:11:11.268 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=489.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:11:11.280 [debug] QUERY OK source="media_items" db=11.5ms queue=0.1ms idle=490.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-08 16:30:01Z], 30] 06:11:11.284 [debug] QUERY OK source="media_items" db=2.8ms idle=502.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" ["It's been a work in progress for a year now and it's stable enough as well as there being packages for the KDE 1 revival project, called MiDE powered by a Qt 2 fork called Osiris.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nYear Old Post: https://www.reddit.com/r/linux/comments/1htnhwq/software_left_in_nostalgialand_dead_software/\nRecent Post: https://www.reddit.com/r/linux/comments/1q17svp/midesktop_kde1_fork_development_preview_release/\nMiDE: https://libranext.com/midesktop/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Qt #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.", "Try Out The KDE 1 Revival Project", "1b6e7c0d-2bd7-4dfb-9f54-90da22537e82", "aj68Zc0WS5c", 693, false, "https://www.youtube.com/watch?v=aj68Zc0WS5c", 18, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020800_Try Out The KDE 1 Revival Project.mp4", false, false, false, 30, [], 98, ~U[2026-02-08 16:30:01Z], ~U[2026-03-01 12:11:11Z], ~U[2026-03-01 12:11:11Z], "It's been a work in progress for a year now and it's stable enough as well as there being packages for the KDE 1 revival project, called MiDE powered by a Qt 2 fork called Osiris.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nYear Old Post: https://www.reddit.com/r/linux/comments/1htnhwq/software_left_in_nostalgialand_dead_software/\nRecent Post: https://www.reddit.com/r/linux/comments/1q17svp/midesktop_kde1_fork_development_preview_release/\nMiDE: https://libranext.com/midesktop/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Qt #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.", "Try Out The KDE 1 Revival Project", "aj68Zc0WS5c", 693, false, "https://www.youtube.com/watch?v=aj68Zc0WS5c", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020800_Try Out The KDE 1 Revival Project.mp4", false, 30, ~U[2026-02-08 16:30:01Z]] 06:11:11.285 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=332.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:11:11.287 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=19.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] 06:11:11.288 [debug] QUERY OK source="media_items" db=0.7ms idle=19.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 [2219799] 06:11:11.288 [debug] Current batch of media processed. Will check again in 1000ms 06:11:12.289 [debug] Current batch of media processed. Will check again in 1000ms 06:11:12.357 [info] {"source":"oban","duration":35552,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:11:13.290 [debug] Current batch of media processed. Will check again in 1000ms 06:11:13.968 [info] {"args":{"id":51},"id":189166,"meta":{},"system_time":1772367073968127036,"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"]} 06:11:13.969 [debug] QUERY OK source="sources" db=0.4ms idle=1190.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [51] 06:11:13.970 [debug] QUERY OK source="settings" db=0.4ms queue=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 [] 06:11:13.971 [debug] QUERY OK source="media_profiles" db=1.2ms queue=0.1ms idle=191.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] 06:11:13.972 [debug] QUERY OK source="settings" db=0.3ms idle=11.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:11:13.972 [debug] Fetching recent media IDs from YouTube RSS feed for source: UCUMwY9iS8oMyWDYIe6_RmoA 06:11:14.292 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A few months back Duckstation's developer Stenzek decided to pull support for the Arch Linux package and now we're seeing a new check and the same thing being done to NixOS\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlocking Arch: https://www.reddit.com/r/linux_gaming/comments/1mcofl4/duckstation_author_now_actively_blocking_arch/\nDuckstation Git AUR: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=duckstation-git\nPolyform Licence: https://polyformproject.org/licenses/strict/1.0.0/\nCC BY-NC-ND: https://creativecommons.org/licenses/by-nc-nd/4.0/deed.en\nDuckstation New Change: https://github.com/stenzek/duckstation/commit/64d13882479e5598a1276e273d231c95a094158c\nNix Issue 1: https://github.com/NixOS/nixpkgs/issues/341915 \nNix Issue 2: https://github.com/NixOS/nixpkgs/issues/342570\nComment 1: https://www.reddit.com/r/EmulationOnAndroid/comments/1e5337f/comment/ldkttbj/?share_id=-ZppjwRdTcRrJDhRl6hh5&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1 \nComment 2: https://www.reddit.com/r/EmulationOnAndroid/comments/152nduz/comment/jskkkl7/?share_id=GK1l1osSFPxMuKHLWvP49&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Duckstation #OpenSource #FOSS #ArchLinux #Linux\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 1053, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020700_Duckstation Is Back At It Again.mp4", "id" => "2OMxCC6BFxE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=2OMxCC6BFxE", "playlist_index" => 19, "timestamp" => 1770481801, "title" => "Duckstation Is Back At It Again", "upload_date" => "20260207"} 06:11:14.293 [debug] QUERY OK source="sources" db=0.4ms queue=0.3ms idle=324.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 06:11:14.294 [debug] QUERY OK source="sources" db=0.5ms idle=324.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:11:14.302 [debug] Media ids fetched from RSS: ["WxN9VzwoGGw", "9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI"] 06:11:14.304 [debug] QUERY OK source="media_items" db=1.5ms idle=331.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" = ?) AND m0."media_id" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [51, "WxN9VzwoGGw", "9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI"] 06:11:14.307 [debug] QUERY OK source="media_items" db=1.4ms queue=0.1ms idle=333.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")))) [51] 06:11:14.307 [debug] QUERY OK source="media_items" db=12.7ms queue=0.1ms idle=324.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-07 16:30:01Z], 30] 06:11:14.314 [debug] QUERY OK source="media_items" db=5.2ms queue=0.1ms idle=15.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 few months back Duckstation's developer Stenzek decided to pull support for the Arch Linux package and now we're seeing a new check and the same thing being done to NixOS\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlocking Arch: https://www.reddit.com/r/linux_gaming/comments/1mcofl4/duckstation_author_now_actively_blocking_arch/\nDuckstation Git AUR: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=duckstation-git\nPolyform Licence: https://polyformproject.org/licenses/strict/1.0.0/\nCC BY-NC-ND: https://creativecommons.org/licenses/by-nc-nd/4.0/deed.en\nDuckstation New Change: https://github.com/stenzek/duckstation/commit/64d13882479e5598a1276e273d231c95a094158c\nNix Issue 1: https://github.com/NixOS/nixpkgs/issues/341915 \nNix Issue 2: https://github.com/NixOS/nixpkgs/issues/342570\nComment 1: https://www.reddit.com/r/EmulationOnAndroid/comments/1e5337f/comment/ldkttbj/?share_id=-ZppjwRdTcRrJDhRl6hh5&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1 \nComment 2: https://www.reddit.com/r/EmulationOnAndroid/comments/152nduz/comment/jskkkl7/?share_id=GK1l1osSFPxMuKHLWvP49&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Duckstation #OpenSource #FOSS #ArchLinux #Linux\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Duckstation Is Back At It Again", "79969ae3-a56c-4020-873c-111d8bf65346", "2OMxCC6BFxE", 1053, false, "https://www.youtube.com/watch?v=2OMxCC6BFxE", 19, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020700_Duckstation Is Back At It Again.mp4", false, false, false, 30, [], 98, ~U[2026-02-07 16:30:01Z], ~U[2026-03-01 12:11:14Z], ~U[2026-03-01 12:11:14Z], "A few months back Duckstation's developer Stenzek decided to pull support for the Arch Linux package and now we're seeing a new check and the same thing being done to NixOS\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlocking Arch: https://www.reddit.com/r/linux_gaming/comments/1mcofl4/duckstation_author_now_actively_blocking_arch/\nDuckstation Git AUR: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=duckstation-git\nPolyform Licence: https://polyformproject.org/licenses/strict/1.0.0/\nCC BY-NC-ND: https://creativecommons.org/licenses/by-nc-nd/4.0/deed.en\nDuckstation New Change: https://github.com/stenzek/duckstation/commit/64d13882479e5598a1276e273d231c95a094158c\nNix Issue 1: https://github.com/NixOS/nixpkgs/issues/341915 \nNix Issue 2: https://github.com/NixOS/nixpkgs/issues/342570\nComment 1: https://www.reddit.com/r/EmulationOnAndroid/comments/1e5337f/comment/ldkttbj/?share_id=-ZppjwRdTcRrJDhRl6hh5&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1 \nComment 2: https://www.reddit.com/r/EmulationOnAndroid/comments/152nduz/comment/jskkkl7/?share_id=GK1l1osSFPxMuKHLWvP49&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Duckstation #OpenSource #FOSS #ArchLinux #Linux\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Duckstation Is Back At It Again", "2OMxCC6BFxE", 1053, false, "https://www.youtube.com/watch?v=2OMxCC6BFxE", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020700_Duckstation Is Back At It Again.mp4", false, 30, ~U[2026-02-07 16:30:01Z]] 06:11:14.316 [debug] QUERY OK source="sources" db=1.9ms 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] 06:11:14.316 [debug] QUERY OK source="tasks" db=1.2ms idle=7.8ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189180, 51, ~U[2026-03-01 12:11:14Z], ~U[2026-03-01 12:11:14Z]] 06:11:14.317 [debug] QUERY OK source="media_profiles" db=0.6ms queue=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] 06:11:14.318 [info] {"args":{"id":51},"id":189166,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":348896,"event":"job:stop","queue_time":58556,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 06:11:14.318 [debug] QUERY OK source="media_items" db=0.6ms 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 [2211971] 06:11:14.318 [debug] Current batch of media processed. Will check again in 1000ms 06:11:15.319 [debug] Current batch of media processed. Will check again in 1000ms 06:11:16.320 [debug] Current batch of media processed. Will check again in 1000ms 06:11:17.321 [debug] Current batch of media processed. Will check again in 1000ms 06:11:18.322 [debug] Current batch of media processed. Will check again in 1000ms 06:11:18.652 [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/dc/46/dc460851f107b42d20b6a6998ac2477a699655d00082bc199422f87d4fc7742f.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/ff/50/ff50acd85d85857709e42b8b1d15d43fd75058cf4f8313bdad5e455d73ce0008.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 06:11:18.654 [debug] Gracefully stopping file follower 06:11:18.655 [debug] QUERY OK source="sources" db=0.5ms idle=876.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 06:11:18.656 [debug] QUERY OK source="sources" db=0.3ms idle=877.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:11:18.668 [debug] QUERY OK source="media_items" db=11.9ms idle=877.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-28 16:30:16Z], 30] 06:11:18.672 [debug] QUERY OK source="media_items" db=2.7ms idle=890.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" ["RAM Pricing is absolutely insane, storage is following along, nobody is buying computers anymore and the industry is an absolute mess\n\n==========Support The Channel==========\n► Patreon: https://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#SteamMachine #linux #Computer #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.", "No One Is Buying Computers Anymore", "cd97c725-a013-436e-b30f-5480caeba74b", "iPyTLOySnSc", 1120, false, "https://www.youtube.com/watch?v=iPyTLOySnSc", 1, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022800_No One Is Buying Computers Anymore.mp4", false, false, false, 30, [], 98, ~U[2026-02-28 16:30:16Z], ~U[2026-03-01 12:11:18Z], ~U[2026-03-01 12:11:18Z], "RAM Pricing is absolutely insane, storage is following along, nobody is buying computers anymore and the industry is an absolute mess\n\n==========Support The Channel==========\n► Patreon: https://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#SteamMachine #linux #Computer #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.", "No One Is Buying Computers Anymore", "iPyTLOySnSc", 1120, false, "https://www.youtube.com/watch?v=iPyTLOySnSc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022800_No One Is Buying Computers Anymore.mp4", false, 30, ~U[2026-02-28 16:30:16Z]] 06:11:18.673 [debug] QUERY OK source="sources" db=0.6ms idle=702.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:11:18.686 [debug] QUERY OK source="media_items" db=12.1ms idle=18.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-26 22:28:58Z], 30] 06:11:18.700 [debug] QUERY OK source="media_items" db=12.7ms idle=30.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" ["By now you probably know about Kent Overstreet's antics in the Linux kernel with BcacheFS but we're not here to talk about that today, instead we're here to talk his AI chat bot which he is convinced is sentient and feels real emotion.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWebsite: https://poc.bcachefs.org/\nWhite Paper: https://poc.bcachefs.org/paper.pdf\nThe Register: https://www.theregister.com/2026/02/25/bcachefs_creator_ai/\nReddit Post: https://www.reddit.com/r/bcachefs/comments/1rblll1/the_blog_of_an_llm_saying_its_owned_by_kent_and/\nFunny Thread: https://social.vlhl.dev/notice/B3gj1a7Xfl0evR4Hke\nIRC Logs: https://paste.xinu.at/6atmCN\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AI #LLM #Linux #LinuxKernel #FOSS #OpenSource\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "BCacheFS Developer Deployed His AI Girlfriend Helper", "1fa71231-8000-452c-89a1-1c448dcb2d7c", "oOzDI3mCv58", 1702, false, "https://www.youtube.com/watch?v=oOzDI3mCv58", 2, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022600_BCacheFS Developer Deployed His AI Girlfriend Helper.mp4", false, false, false, 30, [], 98, ~U[2026-02-26 22:28:58Z], ~U[2026-03-01 12:11:18Z], ~U[2026-03-01 12:11:18Z], "By now you probably know about Kent Overstreet's antics in the Linux kernel with BcacheFS but we're not here to talk about that today, instead we're here to talk his AI chat bot which he is convinced is sentient and feels real emotion.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWebsite: https://poc.bcachefs.org/\nWhite Paper: https://poc.bcachefs.org/paper.pdf\nThe Register: https://www.theregister.com/2026/02/25/bcachefs_creator_ai/\nReddit Post: https://www.reddit.com/r/bcachefs/comments/1rblll1/the_blog_of_an_llm_saying_its_owned_by_kent_and/\nFunny Thread: https://social.vlhl.dev/notice/B3gj1a7Xfl0evR4Hke\nIRC Logs: https://paste.xinu.at/6atmCN\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AI #LLM #Linux #LinuxKernel #FOSS #OpenSource\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "BCacheFS Developer Deployed His AI Girlfriend Helper", "oOzDI3mCv58", 1702, false, "https://www.youtube.com/watch?v=oOzDI3mCv58", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022600_BCacheFS Developer Deployed His AI Girlfriend Helper.mp4", false, 30, ~U[2026-02-26 22:28:58Z]] 06:11:18.703 [debug] QUERY OK source="sources" db=1.9ms queue=0.1ms idle=32.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] 06:11:18.718 [debug] QUERY OK source="media_items" db=14.5ms idle=31.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-25 16:30:18Z], 30] 06:11:18.724 [debug] QUERY OK source="media_items" db=4.2ms idle=45.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" ["For a long time Ladybird browser was going to adopt Swift lang but recently they did a port over to Rust and not just that, used AI to start off the port and this lead to a bit of controversy.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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://ladybird.org/posts/adopting-rust/\nLadybird Swift Issue: https://github.com/LadybirdBrowser/ladybird/issues/933\nPodcast Clip: https://www.youtube.com/watch?v=DSEZ2ZYLdHg\nTwitter Post: https://x.com/awesomekling/status/1822241531501162806\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Rust #Swift #Ladybird #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.", "Ladybird Browser Gave Up C++ For Rust Lang", "0d0a6f58-04ba-47e5-8505-f8d3f15330fd", "lBd5QGjCcGc", 1095, false, "https://www.youtube.com/watch?v=lBd5QGjCcGc", 3, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022500_Ladybird Browser Gave Up C++ For Rust Lang.mp4", false, false, false, 30, [], 98, ~U[2026-02-25 16:30:18Z], ~U[2026-03-01 12:11:18Z], ~U[2026-03-01 12:11:18Z], "For a long time Ladybird browser was going to adopt Swift lang but recently they did a port over to Rust and not just that, used AI to start off the port and this lead to a bit of controversy.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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://ladybird.org/posts/adopting-rust/\nLadybird Swift Issue: https://github.com/LadybirdBrowser/ladybird/issues/933\nPodcast Clip: https://www.youtube.com/watch?v=DSEZ2ZYLdHg\nTwitter Post: https://x.com/awesomekling/status/1822241531501162806\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Rust #Swift #Ladybird #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.", "Ladybird Browser Gave Up C++ For Rust Lang", "lBd5QGjCcGc", 1095, false, "https://www.youtube.com/watch?v=lBd5QGjCcGc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022500_Ladybird Browser Gave Up C++ For Rust Lang.mp4", false, 30, ~U[2026-02-25 16:30:18Z]] 06:11:18.727 [debug] QUERY OK source="sources" db=2.1ms queue=0.1ms idle=38.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:11:18.741 [debug] QUERY OK source="media_items" db=14.1ms idle=27.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-24 16:30:16Z], 30] 06:11:18.747 [debug] QUERY OK source="media_items" db=4.3ms idle=39.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" ["You probably know that HDMI 2.1 is a no go on Linux with an AMD GPU, well that's only if you're an HDMI Forum member, who says you have to listen to there rules if you just reverse engineer the support.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHDMI 2.1 FRL Work: https://github.com/mkopec/linux/\nReddit Post: https://www.reddit.com/r/linux_gaming/comments/1r793et/hdmi_21_frl_looking_for_testers/\nXilinux Article: https://www.phoronix.com/news/AMDGPU-HDMI-2.1-But-Xilinx\nAMD Thread: https://gitlab.freedesktop.org/drm/amd/-/issues/1417#note_3335295\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AMD #Linux #HDMI #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.", "HDMI Forum Hates This New Kernel Patch", "2ac571d5-f83d-4dae-b115-fc5d2e508db6", "N53wMB9d4As", 1021, false, "https://www.youtube.com/watch?v=N53wMB9d4As", 4, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022400_HDMI Forum Hates This New Kernel Patch.mp4", false, false, false, 30, [], 98, ~U[2026-02-24 16:30:16Z], ~U[2026-03-01 12:11:18Z], ~U[2026-03-01 12:11:18Z], "You probably know that HDMI 2.1 is a no go on Linux with an AMD GPU, well that's only if you're an HDMI Forum member, who says you have to listen to there rules if you just reverse engineer the support.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHDMI 2.1 FRL Work: https://github.com/mkopec/linux/\nReddit Post: https://www.reddit.com/r/linux_gaming/comments/1r793et/hdmi_21_frl_looking_for_testers/\nXilinux Article: https://www.phoronix.com/news/AMDGPU-HDMI-2.1-But-Xilinx\nAMD Thread: https://gitlab.freedesktop.org/drm/amd/-/issues/1417#note_3335295\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#AMD #Linux #HDMI #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.", "HDMI Forum Hates This New Kernel Patch", "N53wMB9d4As", 1021, false, "https://www.youtube.com/watch?v=N53wMB9d4As", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022400_HDMI Forum Hates This New Kernel Patch.mp4", false, 30, ~U[2026-02-24 16:30:16Z]] 06:11:18.750 [debug] QUERY OK source="sources" db=2.0ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 06:11:18.764 [debug] QUERY OK source="media_items" db=13.4ms queue=0.1ms idle=27.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-23 16:30:02Z], 30] 06:11:18.769 [debug] QUERY OK source="media_items" db=4.1ms idle=37.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" ["If you're on Linux you've probably written at least a couple of Bash shell scripts, but what if there was another way to do it, a node based way where you didn't have to write any code by hand.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVish Github: https://github.com/Lluciocc/Vish\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Bash #Zsh #Programming #shellscripting \n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Most Unique Way To Make Bash Shell Scripts", "e2874511-ce62-4cd6-b75e-ff637b356f6d", "5SLDNN5DP_o", 867, false, "https://www.youtube.com/watch?v=5SLDNN5DP_o", 5, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022300_The Most Unique Way To Make Bash Shell Scripts.mp4", false, false, false, 30, [], 98, ~U[2026-02-23 16:30:02Z], ~U[2026-03-01 12:11:18Z], ~U[2026-03-01 12:11:18Z], "If you're on Linux you've probably written at least a couple of Bash shell scripts, but what if there was another way to do it, a node based way where you didn't have to write any code by hand.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVish Github: https://github.com/Lluciocc/Vish\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Bash #Zsh #Programming #shellscripting \n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Most Unique Way To Make Bash Shell Scripts", "5SLDNN5DP_o", 867, false, "https://www.youtube.com/watch?v=5SLDNN5DP_o", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022300_The Most Unique Way To Make Bash Shell Scripts.mp4", false, 30, ~U[2026-02-23 16:30:02Z]] 06:11:18.772 [debug] QUERY OK source="sources" db=1.8ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 06:11:18.786 [debug] QUERY OK source="media_items" db=13.6ms queue=0.2ms idle=25.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-22 16:30:18Z], 30] 06:11:18.792 [debug] QUERY OK source="media_items" db=4.2ms idle=37.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've probably heard that screensavers aren't possible on Wayland but that's not actually the case, not only are they possible but there are options available to use like XScreensaver even on Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWayland Screensaver: https://www.jwz.org/blog/2023/09/wayland-and-screen-savers/\nXscreensaver 6.11: https://www.jwz.org/blog/2025/07/xscreensaver-6-11/\nXscreensaver 6.12: https://www.jwz.org/blog/2025/07/xscreensaver-6-12/\nLinux Mint: https://blog.linuxmint.com/?p=4991\nKDE: https://invent.kde.org/plasma/kscreenlocker/-/merge_requests/207\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #FOSS #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Screensavers Are Coming To Wayland", "33c7a579-3608-49f1-b8c3-210e513997f7", "i6qMTnHQ9ow", 862, false, "https://www.youtube.com/watch?v=i6qMTnHQ9ow", 6, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022200_Screensavers Are Coming To Wayland.mp4", false, false, false, 30, [], 98, ~U[2026-02-22 16:30:18Z], ~U[2026-03-01 12:11:18Z], ~U[2026-03-01 12:11:18Z], "You've probably heard that screensavers aren't possible on Wayland but that's not actually the case, not only are they possible but there are options available to use like XScreensaver even on Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWayland Screensaver: https://www.jwz.org/blog/2023/09/wayland-and-screen-savers/\nXscreensaver 6.11: https://www.jwz.org/blog/2025/07/xscreensaver-6-11/\nXscreensaver 6.12: https://www.jwz.org/blog/2025/07/xscreensaver-6-12/\nLinux Mint: https://blog.linuxmint.com/?p=4991\nKDE: https://invent.kde.org/plasma/kscreenlocker/-/merge_requests/207\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #FOSS #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Screensavers Are Coming To Wayland", "i6qMTnHQ9ow", 862, false, "https://www.youtube.com/watch?v=i6qMTnHQ9ow", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022200_Screensavers Are Coming To Wayland.mp4", false, 30, ~U[2026-02-22 16:30:18Z]] 06:11:18.794 [debug] QUERY OK source="sources" db=1.9ms queue=0.1ms idle=28.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] 06:11:18.809 [debug] QUERY OK source="media_items" db=13.6ms idle=26.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-21 16:30:12Z], 30] 06:11:18.814 [debug] QUERY OK source="media_items" db=4.3ms idle=37.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" ["Nowadays the default look of KDE Plasma is called Breeze but before that during the KDE 4 era we had both Oxygen and Air and this developer is trying to bring it back.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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 Post: https://filipfila.wordpress.com/2026/02/08/beating-an-old-but-not-dead-horse-what-to-do-with-the-oxygen-and-air-themes/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bringing KDE 4 Oxygen Back To Modern KDE", "44425ce8-f25e-4b1e-9e26-d1c446c75118", "VplYzVNVncg", 851, false, "https://www.youtube.com/watch?v=VplYzVNVncg", 7, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022100_Bringing KDE 4 Oxygen Back To Modern KDE.mp4", false, false, false, 30, [], 98, ~U[2026-02-21 16:30:12Z], ~U[2026-03-01 12:11:18Z], ~U[2026-03-01 12:11:18Z], "Nowadays the default look of KDE Plasma is called Breeze but before that during the KDE 4 era we had both Oxygen and Air and this developer is trying to bring it back.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.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 Post: https://filipfila.wordpress.com/2026/02/08/beating-an-old-but-not-dead-horse-what-to-do-with-the-oxygen-and-air-themes/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bringing KDE 4 Oxygen Back To Modern KDE", "VplYzVNVncg", 851, false, "https://www.youtube.com/watch?v=VplYzVNVncg", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e022100_Bringing KDE 4 Oxygen Back To Modern KDE.mp4", false, 30, ~U[2026-02-21 16:30:12Z]] 06:11:18.817 [debug] QUERY OK source="sources" db=2.0ms idle=28.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] 06:11:18.832 [debug] QUERY OK source="media_items" db=14.3ms queue=0.2ms idle=26.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-19 16:30:21Z], 30] 06:11:18.838 [debug] QUERY OK source="media_items" db=4.4ms 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" ["The window manager space on Wayland has completely changed over the past few years, there was a time when Sway was the only good choice but now you have both Hyprland a dynamic tiler and Niri a scroller and this has changed the equation for what you can do on Wayland.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHyprland: https://hypr.land/\nNiri: https://github.com/niri-wm/niri\nKarousel: https://github.com/peterfajdiga/karousel\nRiver Repo: https://codeberg.org/river/river\nHyprland Wiki: https://wiki.hypr.land/\nNiri Wiki: https://github.com/niri-wm/niri/wiki/Configuration:-Introduction\nQuickshell: https://quickshell.org/\nMaterial Shell: https://github.com/AvengeMedia/DankMaterialShell\nNoctalia: https://github.com/noctalia-dev/noctalia-shell\nCaelestia: https://github.com/caelestia-dots/shell\nTheo Comment: https://x.com/theo/status/2018422881705984483\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Niri #Hyprland #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Hyprland And Niri Changed Wayland Forever", "5b5cd6a8-fc0e-4a76-ae9c-56d5c96c3412", "jeY7xQ13v6I", 1078, false, "https://www.youtube.com/watch?v=jeY7xQ13v6I", 8, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021900_Hyprland And Niri Changed Wayland Forever.mp4", false, false, false, 30, [], 98, ~U[2026-02-19 16:30:21Z], ~U[2026-03-01 12:11:18Z], ~U[2026-03-01 12:11:18Z], "The window manager space on Wayland has completely changed over the past few years, there was a time when Sway was the only good choice but now you have both Hyprland a dynamic tiler and Niri a scroller and this has changed the equation for what you can do on Wayland.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHyprland: https://hypr.land/\nNiri: https://github.com/niri-wm/niri\nKarousel: https://github.com/peterfajdiga/karousel\nRiver Repo: https://codeberg.org/river/river\nHyprland Wiki: https://wiki.hypr.land/\nNiri Wiki: https://github.com/niri-wm/niri/wiki/Configuration:-Introduction\nQuickshell: https://quickshell.org/\nMaterial Shell: https://github.com/AvengeMedia/DankMaterialShell\nNoctalia: https://github.com/noctalia-dev/noctalia-shell\nCaelestia: https://github.com/caelestia-dots/shell\nTheo Comment: https://x.com/theo/status/2018422881705984483\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Niri #Hyprland #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Hyprland And Niri Changed Wayland Forever", "jeY7xQ13v6I", 1078, false, "https://www.youtube.com/watch?v=jeY7xQ13v6I", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021900_Hyprland And Niri Changed Wayland Forever.mp4", false, 30, ~U[2026-02-19 16:30:21Z]] 06:11:18.841 [debug] QUERY OK source="sources" db=2.1ms idle=30.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:11:18.855 [debug] QUERY OK source="media_items" db=13.8ms idle=27.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-18 16:30:00Z], 30] 06:11:18.862 [debug] QUERY OK source="media_items" db=5.1ms idle=38.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 few weeks back KDE announced that the new Plasma Login Manager was going to require the use of Systemd and thus wouldn't work on FreeBSD or the other BSDs and whilst this is true it's only about the Login Manager not the rest of KDE Plasma\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\n9to5Linux: https://9to5linux.com/kaos-linux-drops-kde-plasma-after-12-years-for-niri-noctalia-to-escape-systemd\nLinuxiac: https://linuxiac.com/kaos-2026-02-debuts-niri-wayland-desktop/\nXDA Developers: https://www.xda-developers.com/linux-distro-dropped-kde-plasma-support-tries-to-escape-systemd/\nKaOS News Post: https://kaosx.us/news/2026/kaos02/\nReddit Post: https://www.reddit.com/r/kde/comments/1r68jmi/a_quick_antifud_faq_to_debunk_the_kde_is_forcing/\nFreeBSd Wayland: https://x61.sh/log/2024/05/27052024192206-sway_openbsd.html\nNetBSD 2020: https://blog.netbsd.org/tnf/entry/wayland_on_netbsd_trials_and\nFreeBSD and NetBSD Now: https://www.youtube.com/watch?v=oo_8gnWQ4xo\nHikari: http://hikari.acmelabs.space/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Is Not Forcing Systemd Use", "5b7c4940-8a9c-4c40-a14c-435e7727f1ce", "0l29JZxzong", 843, false, "https://www.youtube.com/watch?v=0l29JZxzong", 9, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021800_KDE Plasma Is Not Forcing Systemd Use.mp4", false, false, false, 30, [], 98, ~U[2026-02-18 16:30:00Z], ~U[2026-03-01 12:11:18Z], ~U[2026-03-01 12:11:18Z], "A few weeks back KDE announced that the new Plasma Login Manager was going to require the use of Systemd and thus wouldn't work on FreeBSD or the other BSDs and whilst this is true it's only about the Login Manager not the rest of KDE Plasma\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\n9to5Linux: https://9to5linux.com/kaos-linux-drops-kde-plasma-after-12-years-for-niri-noctalia-to-escape-systemd\nLinuxiac: https://linuxiac.com/kaos-2026-02-debuts-niri-wayland-desktop/\nXDA Developers: https://www.xda-developers.com/linux-distro-dropped-kde-plasma-support-tries-to-escape-systemd/\nKaOS News Post: https://kaosx.us/news/2026/kaos02/\nReddit Post: https://www.reddit.com/r/kde/comments/1r68jmi/a_quick_antifud_faq_to_debunk_the_kde_is_forcing/\nFreeBSd Wayland: https://x61.sh/log/2024/05/27052024192206-sway_openbsd.html\nNetBSD 2020: https://blog.netbsd.org/tnf/entry/wayland_on_netbsd_trials_and\nFreeBSD and NetBSD Now: https://www.youtube.com/watch?v=oo_8gnWQ4xo\nHikari: http://hikari.acmelabs.space/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop \n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Is Not Forcing Systemd Use", "0l29JZxzong", 843, false, "https://www.youtube.com/watch?v=0l29JZxzong", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021800_KDE Plasma Is Not Forcing Systemd Use.mp4", false, 30, ~U[2026-02-18 16:30:00Z]] 06:11:18.864 [debug] QUERY OK source="sources" db=2.1ms queue=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" = ?) [30] 06:11:18.879 [debug] QUERY OK source="media_items" db=14.4ms queue=0.1ms idle=27.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-17 16:30:28Z], 30] 06:11:18.886 [debug] QUERY OK source="media_items" db=4.9ms queue=0.2ms idle=39.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" ["What if I told you that an AI agent just tried to ruin the career of a developer on Matplotlib who was following Matplotlib policy to not allow AI agents, writing a hilarious blog post on the situation but it gets even better from there\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nIssue: https://github.com/matplotlib/matplotlib/issues/31130\nMerge Request: https://github.com/matplotlib/matplotlib/pull/31132\nOpenClaw Joins OpenAI: https://www.itnews.com.au/news/openclaw-founder-joins-openai-623662\nAI Blog Post 1: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-gatekeeping-in-open-source-the-scott-shambaugh-story.html\nAI Blog Post 2: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-matplotlib-truce-and-lessons.html\nScott Blog Post 1: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me/\nArs Technica Article: https://web.archive.org/web/20260213194851/https://arstechnica.com/ai/2026/02/after-a-routine-code-rejection-an-ai-agent-published-a-hit-piece-on-someone-by-name/\nScott Blog Post 2: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me-part-2/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#AI #OpenSource #Developer #SoftwareDeveloper #Programmer\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "When AI Agents Try To Ruin Your Career", "8d0c47a3-9c0d-4daa-ae92-c8f4091855e5", "fMoUE59H9bs", 1382, false, "https://www.youtube.com/watch?v=fMoUE59H9bs", 10, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021700_When AI Agents Try To Ruin Your Career.mp4", false, false, false, 30, [], 98, ~U[2026-02-17 16:30:28Z], ~U[2026-03-01 12:11:18Z], ~U[2026-03-01 12:11:18Z], "What if I told you that an AI agent just tried to ruin the career of a developer on Matplotlib who was following Matplotlib policy to not allow AI agents, writing a hilarious blog post on the situation but it gets even better from there\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nIssue: https://github.com/matplotlib/matplotlib/issues/31130\nMerge Request: https://github.com/matplotlib/matplotlib/pull/31132\nOpenClaw Joins OpenAI: https://www.itnews.com.au/news/openclaw-founder-joins-openai-623662\nAI Blog Post 1: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-gatekeeping-in-open-source-the-scott-shambaugh-story.html\nAI Blog Post 2: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-matplotlib-truce-and-lessons.html\nScott Blog Post 1: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me/\nArs Technica Article: https://web.archive.org/web/20260213194851/https://arstechnica.com/ai/2026/02/after-a-routine-code-rejection-an-ai-agent-published-a-hit-piece-on-someone-by-name/\nScott Blog Post 2: https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me-part-2/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#AI #OpenSource #Developer #SoftwareDeveloper #Programmer\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "When AI Agents Try To Ruin Your Career", "fMoUE59H9bs", 1382, false, "https://www.youtube.com/watch?v=fMoUE59H9bs", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021700_When AI Agents Try To Ruin Your Career.mp4", false, 30, ~U[2026-02-17 16:30:28Z]] 06:11:18.889 [debug] QUERY OK source="sources" db=1.9ms queue=0.2ms idle=31.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] 06:11:18.904 [debug] QUERY OK source="media_items" db=14.1ms idle=28.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-16 16:30:11Z], 30] 06:11:18.909 [debug] QUERY OK source="media_items" db=3.8ms idle=39.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 probably know that you should be safe whilst using the AUR on Arch Linux but how does one go about doing that.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nAUR Post: https://bertptrs.nl/2026/01/30/how-to-review-an-aur-package.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#Linux #ArchLinux #FOSS #OpenSource #LinuxDistro\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Staying Safe On Arch Linux", "1554debd-3941-4b2e-8fec-73fc76557528", "bTKATeeQlvM", 1155, false, "https://www.youtube.com/watch?v=bTKATeeQlvM", 11, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021600_Staying Safe On Arch Linux.mp4", false, false, false, 30, [], 98, ~U[2026-02-16 16:30:11Z], ~U[2026-03-01 12:11:18Z], ~U[2026-03-01 12:11:18Z], "You probably know that you should be safe whilst using the AUR on Arch Linux but how does one go about doing that.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nAUR Post: https://bertptrs.nl/2026/01/30/how-to-review-an-aur-package.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#Linux #ArchLinux #FOSS #OpenSource #LinuxDistro\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Staying Safe On Arch Linux", "bTKATeeQlvM", 1155, false, "https://www.youtube.com/watch?v=bTKATeeQlvM", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021600_Staying Safe On Arch Linux.mp4", false, 30, ~U[2026-02-16 16:30:11Z]] 06:11:18.911 [debug] QUERY OK source="sources" db=1.9ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 06:11:18.926 [debug] QUERY OK source="media_items" db=13.9ms queue=0.1ms idle=26.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-15 16:30:29Z], 30] 06:11:18.932 [debug] QUERY OK source="media_items" db=4.4ms idle=37.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" ["Debian is a very important project in the world of Linux but they're going through a bit of a crisis of being Debian, having old systems that people don't want to get involved in and a slow drain of maintainers\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nDebian Linux Bugs: https://www.debian.org/Bugs/\nBug Tracker News: https://www.phoronix.com/news/Debian-Bug-Tracker-2026-Woes\n25 Year Old Report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=78526\nCall For Volunteers: https://lists.debian.org/debian-devel-announce/2026/01/msg00001.html\nMaintainers: https://www.debian.org/intro/organization#data-protection\nQuitting Maintainers: https://lists.debian.org/debian-devel-announce/2026/02/msg00000.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\n#Debian #Linux #LinuxDistro #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.", "Debian Linux Is Going Through A Crisis", "02a44627-353b-4b17-b604-9bd2f731fd19", "ldoHviThNqQ", 1307, false, "https://www.youtube.com/watch?v=ldoHviThNqQ", 12, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021500_Debian Linux Is Going Through A Crisis.mp4", false, false, false, 30, [], 98, ~U[2026-02-15 16:30:29Z], ~U[2026-03-01 12:11:18Z], ~U[2026-03-01 12:11:18Z], "Debian is a very important project in the world of Linux but they're going through a bit of a crisis of being Debian, having old systems that people don't want to get involved in and a slow drain of maintainers\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nDebian Linux Bugs: https://www.debian.org/Bugs/\nBug Tracker News: https://www.phoronix.com/news/Debian-Bug-Tracker-2026-Woes\n25 Year Old Report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=78526\nCall For Volunteers: https://lists.debian.org/debian-devel-announce/2026/01/msg00001.html\nMaintainers: https://www.debian.org/intro/organization#data-protection\nQuitting Maintainers: https://lists.debian.org/debian-devel-announce/2026/02/msg00000.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\n#Debian #Linux #LinuxDistro #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.", "Debian Linux Is Going Through A Crisis", "ldoHviThNqQ", 1307, false, "https://www.youtube.com/watch?v=ldoHviThNqQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021500_Debian Linux Is Going Through A Crisis.mp4", false, 30, ~U[2026-02-15 16:30:29Z]] 06:11:18.934 [debug] QUERY OK source="sources" db=2.0ms queue=0.1ms idle=28.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:11:18.948 [debug] QUERY OK source="media_items" db=13.3ms idle=26.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-14 16:30:32Z], 30] 06:11:18.953 [debug] QUERY OK source="media_items" db=3.9ms idle=37.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 few months back we saw the release of COSMIC Epoch 1 the first full release of the COSMIC Desktop and now we have the roadmap for the upcoming COSMIC Epochs 2 and 3.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCOSMIC Roadmap: https://blog.system76.com/post/cosmic-epoch-2-and-3-roadmap\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Wayland #LinuxDesktop #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.", "COSMIC Desktop Epoch 2 And 3 Change Everything", "07b25f7d-e028-45fa-a87b-1078b4924137", "wai6XsiIrLo", 1298, false, "https://www.youtube.com/watch?v=wai6XsiIrLo", 13, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021400_COSMIC Desktop Epoch 2 And 3 Change Everything.mp4", false, false, false, 30, [], 98, ~U[2026-02-14 16:30:32Z], ~U[2026-03-01 12:11:18Z], ~U[2026-03-01 12:11:18Z], "A few months back we saw the release of COSMIC Epoch 1 the first full release of the COSMIC Desktop and now we have the roadmap for the upcoming COSMIC Epochs 2 and 3.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCOSMIC Roadmap: https://blog.system76.com/post/cosmic-epoch-2-and-3-roadmap\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Wayland #LinuxDesktop #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.", "COSMIC Desktop Epoch 2 And 3 Change Everything", "wai6XsiIrLo", 1298, false, "https://www.youtube.com/watch?v=wai6XsiIrLo", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021400_COSMIC Desktop Epoch 2 And 3 Change Everything.mp4", false, 30, ~U[2026-02-14 16:30:32Z]] 06:11:18.955 [debug] QUERY OK source="sources" db=1.8ms idle=27.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:11:18.970 [debug] QUERY OK source="media_items" db=13.9ms 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-02-12 16:30:19Z], 30] 06:11:18.979 [debug] QUERY OK source="media_items" db=7.2ms queue=0.1ms idle=36.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" ["Linux From Scatch is a project that every Linux user should try at least once but recently they had to make the controversial change of dropping the SysV or System V book in favour of just Systemd due to increased workload and lack of maintainers.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPhoronix Article: https://www.phoronix.com/news/LFS-Dropping-SysVinit\nLFS OpenRC: https://linuxfromscratch.org/~zeckma/lfs-openrc/\nAnnouncement: https://lists.linuxfromscratch.org/sympa/arc/lfs-dev/2026-02/msg00002.html\nSecond Thread: https://lists.linuxfromscratch.org/sympa/arc/blfs-dev/2026-02/msg00001.html\nSysvLFS Project: https://github.com/MymeType/sysvlfs\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#LinuxFromScratch #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 From Scratch Drops SysV In Favour Of Pure Systemd", "d68bc9d6-de23-4f5f-ae8d-939a8f10965b", "OHyWs323uPc", 978, false, "https://www.youtube.com/watch?v=OHyWs323uPc", 14, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021200_Linux From Scratch Drops SysV In Favour Of Pure Systemd.mp4", false, false, false, 30, [], 98, ~U[2026-02-12 16:30:19Z], ~U[2026-03-01 12:11:18Z], ~U[2026-03-01 12:11:18Z], "Linux From Scatch is a project that every Linux user should try at least once but recently they had to make the controversial change of dropping the SysV or System V book in favour of just Systemd due to increased workload and lack of maintainers.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPhoronix Article: https://www.phoronix.com/news/LFS-Dropping-SysVinit\nLFS OpenRC: https://linuxfromscratch.org/~zeckma/lfs-openrc/\nAnnouncement: https://lists.linuxfromscratch.org/sympa/arc/lfs-dev/2026-02/msg00002.html\nSecond Thread: https://lists.linuxfromscratch.org/sympa/arc/blfs-dev/2026-02/msg00001.html\nSysvLFS Project: https://github.com/MymeType/sysvlfs\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#LinuxFromScratch #Linux #OpenSource #FOSS #LinuxDesktop\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 From Scratch Drops SysV In Favour Of Pure Systemd", "OHyWs323uPc", 978, false, "https://www.youtube.com/watch?v=OHyWs323uPc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021200_Linux From Scratch Drops SysV In Favour Of Pure Systemd.mp4", false, 30, ~U[2026-02-12 16:30:19Z]] 06:11:18.980 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms 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" = ?) [30] 06:11:18.994 [debug] QUERY OK source="media_items" db=13.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-02-11 16:30:32Z], 30] 06:11:19.000 [debug] QUERY OK source="media_items" db=5.0ms idle=24.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" ["2 and half years and almost 1000 interactions later we finally see the window positioning protocol now going by xx-zones has finally been merge but what does this actually mean for Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHistorical Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/72\nProtocol 1: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/247\nProtocol 2: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/249\nCurrent Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/264\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #LinuxDesktop #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.", "Wayland Positioning Protocol Is Finally Merged", "11637154-cdf4-4f8c-b864-3ff87353f5be", "s-W7mZhx7QQ", 1267, false, "https://www.youtube.com/watch?v=s-W7mZhx7QQ", 15, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021100_Wayland Positioning Protocol Is Finally Merged.mp4", false, false, false, 30, [], 98, ~U[2026-02-11 16:30:32Z], ~U[2026-03-01 12:11:18Z], ~U[2026-03-01 12:11:18Z], "2 and half years and almost 1000 interactions later we finally see the window positioning protocol now going by xx-zones has finally been merge but what does this actually mean for Wayland\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHistorical Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/72\nProtocol 1: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/247\nProtocol 2: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/249\nCurrent Protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/264\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Wayland #Linux #OpenSource #LinuxDesktop #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.", "Wayland Positioning Protocol Is Finally Merged", "s-W7mZhx7QQ", 1267, false, "https://www.youtube.com/watch?v=s-W7mZhx7QQ", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021100_Wayland Positioning Protocol Is Finally Merged.mp4", false, 30, ~U[2026-02-11 16:30:32Z]] 06:11:19.001 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=24.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:11:19.016 [debug] QUERY OK source="media_items" db=13.8ms queue=0.1ms idle=23.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-10 16:30:22Z], 30] 06:11:19.021 [debug] QUERY OK source="media_items" db=3.7ms idle=36.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" ["We've had a lot positive coverage of Linux as of late so why not have something a little bit more on the negative side, recently The Verge put out this piece on Linux and it has been making the rounds.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVerge Article: https://archive.is/eQJnd\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #OpenSource #FOSS #LinuxDesktop #LinuxDistro\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "He Tried Linux, It Was A Mistake", "61221beb-7d9b-4ab9-aa1d-ad7de9499548", "vncr11f6niw", 1691, false, "https://www.youtube.com/watch?v=vncr11f6niw", 16, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021000_He Tried Linux, It Was A Mistake.mp4", false, false, false, 30, [], 98, ~U[2026-02-10 16:30:22Z], ~U[2026-03-01 12:11:19Z], ~U[2026-03-01 12:11:19Z], "We've had a lot positive coverage of Linux as of late so why not have something a little bit more on the negative side, recently The Verge put out this piece on Linux and it has been making the rounds.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nVerge Article: https://archive.is/eQJnd\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #OpenSource #FOSS #LinuxDesktop #LinuxDistro\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "He Tried Linux, It Was A Mistake", "vncr11f6niw", 1691, false, "https://www.youtube.com/watch?v=vncr11f6niw", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e021000_He Tried Linux, It Was A Mistake.mp4", false, 30, ~U[2026-02-10 16:30:22Z]] 06:11:19.023 [debug] QUERY OK source="sources" db=1.9ms queue=0.1ms idle=27.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] 06:11:19.037 [debug] QUERY OK source="media_items" db=12.9ms idle=24.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-09 16:30:18Z], 30] 06:11:19.042 [debug] QUERY OK source="media_items" db=3.4ms idle=36.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" ["Rather than constantly breaking your Linux system and treating it like a lab or a test bench, there's probably a better way to do things.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHow To Geek Article: https://www.howtogeek.com/please-stop-screwing-with-your-daily-driver-linux-pc/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop #OpenSource #FOSS #ArchLinux #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Stop Constantly Breaking Your Linux Desktop", "b7c93a4b-5f7e-4cc0-869b-edf76618951e", "PKSb1VqPbFc", 833, false, "https://www.youtube.com/watch?v=PKSb1VqPbFc", 17, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020900_Stop Constantly Breaking Your Linux Desktop.mp4", false, false, false, 30, [], 98, ~U[2026-02-09 16:30:18Z], ~U[2026-03-01 12:11:19Z], ~U[2026-03-01 12:11:19Z], "Rather than constantly breaking your Linux system and treating it like a lab or a test bench, there's probably a better way to do things.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nHow To Geek Article: https://www.howtogeek.com/please-stop-screwing-with-your-daily-driver-linux-pc/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #LinuxDesktop #OpenSource #FOSS #ArchLinux #LinuxDesktop\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Stop Constantly Breaking Your Linux Desktop", "PKSb1VqPbFc", 833, false, "https://www.youtube.com/watch?v=PKSb1VqPbFc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020900_Stop Constantly Breaking Your Linux Desktop.mp4", false, 30, ~U[2026-02-09 16:30:18Z]] 06:11:19.044 [debug] QUERY OK source="sources" db=1.4ms queue=0.1ms idle=26.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:11:19.056 [debug] QUERY OK source="media_items" db=12.0ms idle=23.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-08 16:30:01Z], 30] 06:11:19.069 [debug] QUERY OK source="media_items" db=11.8ms idle=33.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" ["It's been a work in progress for a year now and it's stable enough as well as there being packages for the KDE 1 revival project, called MiDE powered by a Qt 2 fork called Osiris.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nYear Old Post: https://www.reddit.com/r/linux/comments/1htnhwq/software_left_in_nostalgialand_dead_software/\nRecent Post: https://www.reddit.com/r/linux/comments/1q17svp/midesktop_kde1_fork_development_preview_release/\nMiDE: https://libranext.com/midesktop/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Qt #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.", "Try Out The KDE 1 Revival Project", "e838ec0b-f938-4687-a0c5-d3601b945d6b", "aj68Zc0WS5c", 693, false, "https://www.youtube.com/watch?v=aj68Zc0WS5c", 18, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020800_Try Out The KDE 1 Revival Project.mp4", false, false, false, 30, [], 98, ~U[2026-02-08 16:30:01Z], ~U[2026-03-01 12:11:19Z], ~U[2026-03-01 12:11:19Z], "It's been a work in progress for a year now and it's stable enough as well as there being packages for the KDE 1 revival project, called MiDE powered by a Qt 2 fork called Osiris.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nYear Old Post: https://www.reddit.com/r/linux/comments/1htnhwq/software_left_in_nostalgialand_dead_software/\nRecent Post: https://www.reddit.com/r/linux/comments/1q17svp/midesktop_kde1_fork_development_preview_release/\nMiDE: https://libranext.com/midesktop/\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Qt #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.", "Try Out The KDE 1 Revival Project", "aj68Zc0WS5c", 693, false, "https://www.youtube.com/watch?v=aj68Zc0WS5c", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020800_Try Out The KDE 1 Revival Project.mp4", false, 30, ~U[2026-02-08 16:30:01Z]] 06:11:19.072 [debug] QUERY OK source="sources" db=1.8ms queue=0.1ms idle=32.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 06:11:19.085 [debug] QUERY OK source="media_items" db=12.6ms idle=30.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-07 16:30:01Z], 30] 06:11:19.091 [debug] QUERY OK source="media_items" db=4.8ms idle=41.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 few months back Duckstation's developer Stenzek decided to pull support for the Arch Linux package and now we're seeing a new check and the same thing being done to NixOS\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlocking Arch: https://www.reddit.com/r/linux_gaming/comments/1mcofl4/duckstation_author_now_actively_blocking_arch/\nDuckstation Git AUR: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=duckstation-git\nPolyform Licence: https://polyformproject.org/licenses/strict/1.0.0/\nCC BY-NC-ND: https://creativecommons.org/licenses/by-nc-nd/4.0/deed.en\nDuckstation New Change: https://github.com/stenzek/duckstation/commit/64d13882479e5598a1276e273d231c95a094158c\nNix Issue 1: https://github.com/NixOS/nixpkgs/issues/341915 \nNix Issue 2: https://github.com/NixOS/nixpkgs/issues/342570\nComment 1: https://www.reddit.com/r/EmulationOnAndroid/comments/1e5337f/comment/ldkttbj/?share_id=-ZppjwRdTcRrJDhRl6hh5&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1 \nComment 2: https://www.reddit.com/r/EmulationOnAndroid/comments/152nduz/comment/jskkkl7/?share_id=GK1l1osSFPxMuKHLWvP49&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Duckstation #OpenSource #FOSS #ArchLinux #Linux\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Duckstation Is Back At It Again", "919d688e-dfce-47bd-b25c-02aab7f21e6f", "2OMxCC6BFxE", 1053, false, "https://www.youtube.com/watch?v=2OMxCC6BFxE", 19, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020700_Duckstation Is Back At It Again.mp4", false, false, false, 30, [], 98, ~U[2026-02-07 16:30:01Z], ~U[2026-03-01 12:11:19Z], ~U[2026-03-01 12:11:19Z], "A few months back Duckstation's developer Stenzek decided to pull support for the Arch Linux package and now we're seeing a new check and the same thing being done to NixOS\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nBlocking Arch: https://www.reddit.com/r/linux_gaming/comments/1mcofl4/duckstation_author_now_actively_blocking_arch/\nDuckstation Git AUR: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=duckstation-git\nPolyform Licence: https://polyformproject.org/licenses/strict/1.0.0/\nCC BY-NC-ND: https://creativecommons.org/licenses/by-nc-nd/4.0/deed.en\nDuckstation New Change: https://github.com/stenzek/duckstation/commit/64d13882479e5598a1276e273d231c95a094158c\nNix Issue 1: https://github.com/NixOS/nixpkgs/issues/341915 \nNix Issue 2: https://github.com/NixOS/nixpkgs/issues/342570\nComment 1: https://www.reddit.com/r/EmulationOnAndroid/comments/1e5337f/comment/ldkttbj/?share_id=-ZppjwRdTcRrJDhRl6hh5&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1 \nComment 2: https://www.reddit.com/r/EmulationOnAndroid/comments/152nduz/comment/jskkkl7/?share_id=GK1l1osSFPxMuKHLWvP49&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Duckstation #OpenSource #FOSS #ArchLinux #Linux\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Duckstation Is Back At It Again", "2OMxCC6BFxE", 1053, false, "https://www.youtube.com/watch?v=2OMxCC6BFxE", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020700_Duckstation Is Back At It Again.mp4", false, 30, ~U[2026-02-07 16:30:01Z]] 06:11:19.094 [debug] QUERY OK source="sources" db=1.9ms queue=0.1ms idle=35.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 06:11:19.107 [debug] QUERY OK source="media_items" db=13.1ms queue=0.1ms idle=25.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-05 16:30:00Z], 30] 06:11:19.114 [debug] QUERY OK source="media_items" db=5.1ms queue=0.1ms idle=36.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" ["Recently Bazzite announced the Open Gaming Collective, and normally this would be cause for celebration but this was also tied up in a big drama with a core project maintainer also being removed.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWINE Announcement: https://gitlab.winehq.org/wine/wine/-/releases/wine-11.0\nNexus Mods: https://www.nexusmods.com/news/15433\nGOG Galaxy: https://www.reddit.com/r/linux_gaming/comments/1qnu1i4/gog_is_seeking_a_senior_software_engineer_with_c/\nOGC Announcement: https://universal-blue.discourse.group/t/a-brighter-future-for-bazzite/11575?ref=gardinerbryant.com\nHHD: https://github.com/hhd-dev/hhd\nThe Comments: https://x.com/SapphoSys/status/2000870028057698761\nGPD Win First: https://www.gamingonlinux.com/2025/09/gpd-win-5-highlights-support-for-running-bazzite-linux/\nOfficial Announcement: https://videocardz.com/newz/gpd-win-5-to-become-the-first-amd-strix-halo-handheld-to-get-official-bazzite-os-support\nKyle Correction: https://universal-blue.discourse.group/t/correction-regarding-gpd-win5-support-for-bazzite/11574\nGPD Statement: https://www.reddit.com/r/gpdwin/comments/1qqup52/there_really_have_been_a_lot_of_dramatic/\nAntheas Statement: https://ba.antheas.dev/bazzite-postmortem.html\nNonSteamLaunchers: https://github.com/moraroy/NonSteamLaunchers-On-Steam-Deck/issues/393\nCachyOS Comments: https://www.reddit.com/r/cachyos/comments/1qq0dxr/open_gaming_collective_ogc_formed_to_push_linux/\nFinal Bazzite Statement: https://universal-blue.discourse.group/t/upholding-our-values-our-final-update-on-gpd/11594\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Bazzite #LinuxGaming #GamingOnLinux #FOSS #OpenSource\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bazzite Linux Got Into Some Drama", "449d7237-7f95-41ba-ad9a-5cb383a09017", "aajSOtHd8uc", 1887, false, "https://www.youtube.com/watch?v=aajSOtHd8uc", 20, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020500_Bazzite Linux Got Into Some Drama.mp4", false, false, false, 30, [], 98, ~U[2026-02-05 16:30:00Z], ~U[2026-03-01 12:11:19Z], ~U[2026-03-01 12:11:19Z], "Recently Bazzite announced the Open Gaming Collective, and normally this would be cause for celebration but this was also tied up in a big drama with a core project maintainer also being removed.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nWINE Announcement: https://gitlab.winehq.org/wine/wine/-/releases/wine-11.0\nNexus Mods: https://www.nexusmods.com/news/15433\nGOG Galaxy: https://www.reddit.com/r/linux_gaming/comments/1qnu1i4/gog_is_seeking_a_senior_software_engineer_with_c/\nOGC Announcement: https://universal-blue.discourse.group/t/a-brighter-future-for-bazzite/11575?ref=gardinerbryant.com\nHHD: https://github.com/hhd-dev/hhd\nThe Comments: https://x.com/SapphoSys/status/2000870028057698761\nGPD Win First: https://www.gamingonlinux.com/2025/09/gpd-win-5-highlights-support-for-running-bazzite-linux/\nOfficial Announcement: https://videocardz.com/newz/gpd-win-5-to-become-the-first-amd-strix-halo-handheld-to-get-official-bazzite-os-support\nKyle Correction: https://universal-blue.discourse.group/t/correction-regarding-gpd-win5-support-for-bazzite/11574\nGPD Statement: https://www.reddit.com/r/gpdwin/comments/1qqup52/there_really_have_been_a_lot_of_dramatic/\nAntheas Statement: https://ba.antheas.dev/bazzite-postmortem.html\nNonSteamLaunchers: https://github.com/moraroy/NonSteamLaunchers-On-Steam-Deck/issues/393\nCachyOS Comments: https://www.reddit.com/r/cachyos/comments/1qq0dxr/open_gaming_collective_ogc_formed_to_push_linux/\nFinal Bazzite Statement: https://universal-blue.discourse.group/t/upholding-our-values-our-final-update-on-gpd/11594\n\n=========Video Platforms==========\n🎥 React: https://www.youtube.com/@BrodieRobertsonReacts\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#Bazzite #LinuxGaming #GamingOnLinux #FOSS #OpenSource\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Bazzite Linux Got Into Some Drama", "aajSOtHd8uc", 1887, false, "https://www.youtube.com/watch?v=aajSOtHd8uc", "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2026/s2026e020500_Bazzite Linux Got Into Some Drama.mp4", false, 30, ~U[2026-02-05 16:30:00Z]] 06:11:19.117 [debug] QUERY OK source="sources" db=2.0ms idle=30.0ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-01 12:11:19Z], ~U[2026-03-01 12:11:19Z], 30] 06:11:19.132 [debug] QUERY OK source="media_items" db=14.8ms idle=26.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] 06:11:19.148 [debug] QUERY OK source="media_items" db=15.0ms queue=0.1ms idle=39.1ms 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] 06:11:19.151 [debug] QUERY OK source="media_items" db=2.2ms idle=41.1ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [30] 06:11:19.156 [debug] QUERY OK source="tasks" db=1.8ms queue=0.1ms idle=21.9ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189181, 30, ~U[2026-03-01 12:11:19Z], ~U[2026-03-01 12:11:19Z]] 06:11:19.158 [info] {"args":{"id":30},"id":189128,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":82387107,"event":"job:stop","queue_time":422845,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 06:11:42.374 [info] {"source":"oban","duration":17422,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:12:00.172 [info] {"source":"oban","duration":801,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:12:12.388 [info] {"source":"oban","duration":12549,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:12:42.403 [info] {"source":"oban","duration":14596,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 06:13:00.174 [info] {"source":"oban","duration":247,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:13:12.415 [info] {"source":"oban","duration":12080,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:13:42.424 [info] {"source":"oban","duration":8126,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:13:56.292 [info] {"args":{"id":1230264},"id":177360,"meta":{},"system_time":1772367236292791447,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":19,"tags":["media_item","media_fetching","show_in_dashboard"]} 06:13:56.293 [debug] QUERY OK source="media_items" db=0.5ms idle=514.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" = ?) [1230264] 06:13:56.294 [info] User scripts lifecyle file either not present or is empty. Skipping. 06:13:56.295 [debug] QUERY OK source="sources" db=0.8ms idle=515.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 06:13:56.295 [debug] QUERY OK source="media_profiles" db=0.2ms idle=516.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] 06:13:56.297 [debug] QUERY OK source="media_items" db=1.0ms idle=10.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 [1230264] 06:13:56.297 [debug] QUERY OK source="media_metadata" db=0.1ms idle=4.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" = ?) [1230264] 06:13:56.297 [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] 06:13:56.298 [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 [] 06:13:56.298 [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 [] 06:13:56.298 [debug] Running yt-dlp command for action: get_downloadable_status 06:13:56.305 [debug] QUERY OK source="settings" db=0.1ms 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 [] 06:13:56.305 [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 [] 06:13:56.305 [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 [] 06:13:56.306 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=fbg8bfuQVEE --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/7e/6a/7e6a20c25acf608e9001b2628ae81f098bd1a8d80d05f8d23432f2fd600ce8ae.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 06:13:59.249 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=fbg8bfuQVEE --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/7e/6a/7e6a20c25acf608e9001b2628ae81f098bd1a8d80d05f8d23432f2fd600ce8ae.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] fbg8bfuQVEE: Join this channel to get access to members-only content like this video, and other exclusive perks. 06:13:59.249 [error] yt-dlp download error for media item #1230264: "ERROR: [youtube] fbg8bfuQVEE: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 06:13:59.251 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1230264},"id":177360,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2956730,"event":"job:exception","queue_time":575812,"attempt":19,"tags":["media_item","media_fetching","show_in_dashboard"]} 06:14:00.174 [info] {"source":"oban","duration":366,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:14:12.438 [info] {"source":"oban","duration":12658,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:14:42.453 [info] {"source":"oban","duration":15167,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 06:15:00.175 [info] {"source":"oban","duration":411,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:15:12.473 [info] {"source":"oban","duration":18617,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:15:42.493 [info] {"source":"oban","duration":20204,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:16:00.176 [info] {"source":"oban","duration":282,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:16:12.509 [info] {"source":"oban","duration":15390,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":2}